@thinkai/tai-api-contract 2.49.0 → 2.51.0-pr.877.bf4a3821

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkai/tai-api-contract",
3
- "version": "2.49.0",
3
+ "version": "2.51.0-pr.877.bf4a3821",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -748,7 +748,7 @@ export interface paths {
748
748
  };
749
749
  /**
750
750
  * AI usage & spend insights — AI-assisted code percentage
751
- * @description Period and weekly AI-assisted code percentage for the Measure **AI-assisted code** card on `/phase-c/c7` and the **AI impact** curve on `/phase-c/c4`. When scoped productivity metrics include `aiAssistedContributionRatioPercent`, values are **measured** from ingest; otherwise the API falls back to token→LOC heuristics and sets `dataQuality` to **estimated**. Clients should not present estimated series as Cursor-measured signal.
751
+ * @description Period and weekly AI-assisted code percentage for the Measure **AI-assisted code** card on `/phase-c/c7` and the **AI impact** curve on `/phase-c/c4`. When engagement daily rows exist for the scope, values are **measured** from Σ `ai_lines_added` ÷ merged-PR lines (`dashboard_metrics`); otherwise the API falls back to token→LOC heuristics and sets `dataQuality` to **estimated**. Clients should not present estimated series as editor-measured signal.
752
752
  */
753
753
  get: operations["getAiUsageSpendAiAssistedCodePercentage"];
754
754
  put?: never;
@@ -759,6 +759,26 @@ export interface paths {
759
759
  patch?: never;
760
760
  trace?: never;
761
761
  };
762
+ "/workspaces/{workspaceId}/insights/ai-usage-spend/provider-engagement-insights": {
763
+ parameters: {
764
+ query?: never;
765
+ header?: never;
766
+ path?: never;
767
+ cookie?: never;
768
+ };
769
+ /**
770
+ * AI usage & spend insights — provider engagement cards
771
+ * @description Provider-specific engagement insight metrics derived from `tai_workspace_ai_tool_engagement_daily` (accepted AI lines, tab completions, suggestion accept rates, Claude Code sessions, etc.). Metrics are **provider- and data-gated**: structurally absent signals render as N/A, not zero. Claude per-user cards require Enterprise Analytics (`insightsPlan` ≠ team).
772
+ */
773
+ get: operations["getAiUsageSpendProviderEngagementInsights"];
774
+ put?: never;
775
+ post?: never;
776
+ delete?: never;
777
+ options?: never;
778
+ head?: never;
779
+ patch?: never;
780
+ trace?: never;
781
+ };
762
782
  "/workspaces/{workspaceId}/insights/ai-usage-spend/ai-tool-usage-spend": {
763
783
  parameters: {
764
784
  query?: never;
@@ -3109,6 +3129,25 @@ export interface components {
3109
3129
  githubActionsCiEnabled?: boolean;
3110
3130
  items: components["schemas"]["ProductivityInsightsNeedsAttentionItemDto"][];
3111
3131
  };
3132
+ /**
3133
+ * @description Echo of the resolved time bucket for this response. `day` when the request used an `Nd`/`cr:`/`from`+`to` window; `week` for legacy weekly rangeIds.
3134
+ * @enum {string}
3135
+ */
3136
+ AiUsageSpendGranularity: "day" | "week";
3137
+ /** @description Daily windows: `7d`, `30d`, `90d`, `180d`, or custom `cr:YYYY-MM-DD:YYYY-MM-DD`. Weekly legacy: `4w`, `8w`, `q` (12 weeks), `12w`, `16w`. */
3138
+ AiUsageSpendRangeId: string;
3139
+ AiUsageSpendDailyBucketDto: {
3140
+ /**
3141
+ * Format: date
3142
+ * @description UTC calendar day (`YYYY-MM-DD`).
3143
+ */
3144
+ date: string;
3145
+ /** @description Short label for table headers (e.g. MM/DD). */
3146
+ dayLabel?: string;
3147
+ tokenCount: number;
3148
+ spendCents: number;
3149
+ activeUsers: number;
3150
+ };
3112
3151
  AiUsageSpendAggregatedTeamWeekDto: {
3113
3152
  /** Format: date-time */
3114
3153
  bucketStart: string;
@@ -3128,7 +3167,9 @@ export interface components {
3128
3167
  teamName: string;
3129
3168
  headcount: number;
3130
3169
  managerLabel?: string;
3131
- weeks: components["schemas"]["AiUsageSpendAggregatedTeamWeekDto"][];
3170
+ /** @description Present in day-mode responses — daily token, spend, and active-user counts. */
3171
+ days?: components["schemas"]["AiUsageSpendDailyBucketDto"][];
3172
+ weeks?: components["schemas"]["AiUsageSpendAggregatedTeamWeekDto"][];
3132
3173
  };
3133
3174
  AiUsageSpendAggregatedTeamsSummaryDto: {
3134
3175
  totalTokenCount: number;
@@ -3143,8 +3184,18 @@ export interface components {
3143
3184
  AiUsageSpendAggregatedTeamsDto: {
3144
3185
  /** Format: uuid */
3145
3186
  workspaceId: string;
3146
- /** @enum {string} */
3147
- range: "4w" | "8w" | "q";
3187
+ range: components["schemas"]["AiUsageSpendRangeId"];
3188
+ granularity?: components["schemas"]["AiUsageSpendGranularity"];
3189
+ /**
3190
+ * Format: date
3191
+ * @description Inclusive start day when `granularity` is `day`.
3192
+ */
3193
+ from?: string;
3194
+ /**
3195
+ * Format: date
3196
+ * @description Inclusive end day when `granularity` is `day`.
3197
+ */
3198
+ to?: string;
3148
3199
  scope: components["schemas"]["ProductivityInsightsAggregatedTeamsScopeDto"];
3149
3200
  /** Format: date-time */
3150
3201
  generatedAt: string;
@@ -3158,13 +3209,25 @@ export interface components {
3158
3209
  title?: string;
3159
3210
  team?: string;
3160
3211
  department?: string;
3161
- weeks: components["schemas"]["AiUsageSpendAggregatedTeamWeekDto"][];
3212
+ /** @description Present in day-mode responses — daily token, spend, and active-user counts. */
3213
+ days?: components["schemas"]["AiUsageSpendDailyBucketDto"][];
3214
+ weeks?: components["schemas"]["AiUsageSpendAggregatedTeamWeekDto"][];
3162
3215
  };
3163
3216
  AiUsageSpendAggregatedContributorsDto: {
3164
3217
  /** Format: uuid */
3165
3218
  workspaceId: string;
3166
- /** @enum {string} */
3167
- range: "4w" | "8w" | "q";
3219
+ range: components["schemas"]["AiUsageSpendRangeId"];
3220
+ granularity?: components["schemas"]["AiUsageSpendGranularity"];
3221
+ /**
3222
+ * Format: date
3223
+ * @description Inclusive start day when `granularity` is `day`.
3224
+ */
3225
+ from?: string;
3226
+ /**
3227
+ * Format: date
3228
+ * @description Inclusive end day when `granularity` is `day`.
3229
+ */
3230
+ to?: string;
3168
3231
  scope: components["schemas"]["ProductivityInsightsAggregatedTeamsScopeDto"];
3169
3232
  /** Format: date-time */
3170
3233
  generatedAt: string;
@@ -3174,8 +3237,18 @@ export interface components {
3174
3237
  AiUsageSpendContributorToolHeatmapDto: {
3175
3238
  /** Format: uuid */
3176
3239
  workspaceId: string;
3177
- /** @enum {string} */
3178
- range: "4w" | "8w" | "q";
3240
+ range: components["schemas"]["AiUsageSpendRangeId"];
3241
+ granularity?: components["schemas"]["AiUsageSpendGranularity"];
3242
+ /**
3243
+ * Format: date
3244
+ * @description Inclusive start day when `granularity` is `day`.
3245
+ */
3246
+ from?: string;
3247
+ /**
3248
+ * Format: date
3249
+ * @description Inclusive end day when `granularity` is `day`.
3250
+ */
3251
+ to?: string;
3179
3252
  scope: components["schemas"]["ProductivityInsightsAggregatedTeamsScopeDto"];
3180
3253
  /** Format: date-time */
3181
3254
  generatedAt: string;
@@ -3192,8 +3265,18 @@ export interface components {
3192
3265
  AiUsageSpendKeyInsightsDto: {
3193
3266
  /** Format: uuid */
3194
3267
  workspaceId: string;
3195
- /** @enum {string} */
3196
- range: "4w" | "8w" | "q";
3268
+ range: components["schemas"]["AiUsageSpendRangeId"];
3269
+ granularity?: components["schemas"]["AiUsageSpendGranularity"];
3270
+ /**
3271
+ * Format: date
3272
+ * @description Inclusive start day when `granularity` is `day`.
3273
+ */
3274
+ from?: string;
3275
+ /**
3276
+ * Format: date
3277
+ * @description Inclusive end day when `granularity` is `day`.
3278
+ */
3279
+ to?: string;
3197
3280
  scope: components["schemas"]["ProductivityInsightsAggregatedTeamsScopeDto"];
3198
3281
  /** Format: date-time */
3199
3282
  generatedAt: string;
@@ -3209,6 +3292,16 @@ export interface components {
3209
3292
  * @enum {string}
3210
3293
  */
3211
3294
  AiAssistedCodeEstimationSource: "ingest" | "token_volume" | "spend_proxy" | "adoption" | "unavailable";
3295
+ AiUsageSpendAiAssistedCodeDayDto: {
3296
+ /** Format: date */
3297
+ date: string;
3298
+ dayLabel?: string;
3299
+ aiAssistedCodePercent: number;
3300
+ totalLoc: number;
3301
+ aiLoc: number;
3302
+ humanLoc: number;
3303
+ dataQuality: components["schemas"]["AiAssistedCodeDataQuality"];
3304
+ };
3212
3305
  AiUsageSpendAiAssistedCodeWeekDto: {
3213
3306
  /** Format: date-time */
3214
3307
  bucketStart: string;
@@ -3224,8 +3317,18 @@ export interface components {
3224
3317
  AiUsageSpendAiAssistedCodePercentageDto: {
3225
3318
  /** Format: uuid */
3226
3319
  workspaceId: string;
3227
- /** @enum {string} */
3228
- range: "4w" | "8w" | "q";
3320
+ range: components["schemas"]["AiUsageSpendRangeId"];
3321
+ granularity?: components["schemas"]["AiUsageSpendGranularity"];
3322
+ /**
3323
+ * Format: date
3324
+ * @description Inclusive start day when `granularity` is `day`.
3325
+ */
3326
+ from?: string;
3327
+ /**
3328
+ * Format: date
3329
+ * @description Inclusive end day when `granularity` is `day`.
3330
+ */
3331
+ to?: string;
3229
3332
  scope: components["schemas"]["ProductivityInsightsAggregatedTeamsScopeDto"];
3230
3333
  /** Format: date-time */
3231
3334
  generatedAt: string;
@@ -3247,7 +3350,45 @@ export interface components {
3247
3350
  totalTokenCount?: number;
3248
3351
  /** @description Scoped AI-tool spend in cents for the selected period. */
3249
3352
  totalSpendCents?: number;
3250
- weeks: components["schemas"]["AiUsageSpendAiAssistedCodeWeekDto"][];
3353
+ /** @description Present in day-mode responses — daily AI-assisted code share series. */
3354
+ days?: components["schemas"]["AiUsageSpendAiAssistedCodeDayDto"][];
3355
+ weeks?: components["schemas"]["AiUsageSpendAiAssistedCodeWeekDto"][];
3356
+ };
3357
+ /** @enum {string} */
3358
+ ProviderEngagementInsightAvailability: "measured" | "not_applicable";
3359
+ AiUsageSpendProviderEngagementMetricDto: {
3360
+ id: string;
3361
+ label: string;
3362
+ value: number | null;
3363
+ displayValue: string;
3364
+ availability: components["schemas"]["ProviderEngagementInsightAvailability"];
3365
+ unit?: string;
3366
+ methodologyNote?: string;
3367
+ };
3368
+ AiUsageSpendProviderEngagementCardDto: {
3369
+ providerId: string;
3370
+ providerName: string;
3371
+ metrics: components["schemas"]["AiUsageSpendProviderEngagementMetricDto"][];
3372
+ };
3373
+ AiUsageSpendProviderEngagementInsightsDto: {
3374
+ /** Format: uuid */
3375
+ workspaceId: string;
3376
+ range: components["schemas"]["AiUsageSpendRangeId"];
3377
+ granularity?: components["schemas"]["AiUsageSpendGranularity"];
3378
+ /**
3379
+ * Format: date
3380
+ * @description Inclusive start day when `granularity` is `day`.
3381
+ */
3382
+ from?: string;
3383
+ /**
3384
+ * Format: date
3385
+ * @description Inclusive end day when `granularity` is `day`.
3386
+ */
3387
+ to?: string;
3388
+ scope: components["schemas"]["ProductivityInsightsAggregatedTeamsScopeDto"];
3389
+ /** Format: date-time */
3390
+ generatedAt: string;
3391
+ providers: components["schemas"]["AiUsageSpendProviderEngagementCardDto"][];
3251
3392
  };
3252
3393
  AiUsageSpendAiToolUsageSpendProviderItemDto: {
3253
3394
  providerId: string;
@@ -3266,8 +3407,18 @@ export interface components {
3266
3407
  AiUsageSpendAiToolUsageSpendDto: {
3267
3408
  /** Format: uuid */
3268
3409
  workspaceId: string;
3269
- /** @enum {string} */
3270
- range: "4w" | "8w" | "q";
3410
+ range: components["schemas"]["AiUsageSpendRangeId"];
3411
+ granularity?: components["schemas"]["AiUsageSpendGranularity"];
3412
+ /**
3413
+ * Format: date
3414
+ * @description Inclusive start day when `granularity` is `day`.
3415
+ */
3416
+ from?: string;
3417
+ /**
3418
+ * Format: date
3419
+ * @description Inclusive end day when `granularity` is `day`.
3420
+ */
3421
+ to?: string;
3271
3422
  scope: components["schemas"]["ProductivityInsightsAggregatedTeamsScopeDto"];
3272
3423
  /** Format: date-time */
3273
3424
  generatedAt: string;
@@ -3278,13 +3429,30 @@ export interface components {
3278
3429
  AiUsageSpendTeamToolHeatmapDto: {
3279
3430
  /** Format: uuid */
3280
3431
  workspaceId: string;
3281
- /** @enum {string} */
3282
- range: "4w" | "8w" | "q";
3432
+ range: components["schemas"]["AiUsageSpendRangeId"];
3433
+ granularity?: components["schemas"]["AiUsageSpendGranularity"];
3434
+ /**
3435
+ * Format: date
3436
+ * @description Inclusive start day when `granularity` is `day`.
3437
+ */
3438
+ from?: string;
3439
+ /**
3440
+ * Format: date
3441
+ * @description Inclusive end day when `granularity` is `day`.
3442
+ */
3443
+ to?: string;
3283
3444
  scope: components["schemas"]["ProductivityInsightsAggregatedTeamsScopeDto"];
3284
3445
  /** Format: date-time */
3285
3446
  generatedAt: string;
3286
3447
  teams: components["schemas"]["AiUsageSpendAggregatedTeamRowDto"][];
3287
3448
  };
3449
+ AiUsageSpendRoiProductivitySignalDayDto: {
3450
+ /** Format: date */
3451
+ date: string;
3452
+ dayLabel?: string;
3453
+ mergedPrCount: number;
3454
+ tokenCount: number;
3455
+ };
3288
3456
  AiUsageSpendRoiProductivitySignalWeekDto: {
3289
3457
  /** Format: date-time */
3290
3458
  bucketStart: string;
@@ -3299,8 +3467,18 @@ export interface components {
3299
3467
  AiUsageSpendRoiProductivitySignalDto: {
3300
3468
  /** Format: uuid */
3301
3469
  workspaceId: string;
3302
- /** @enum {string} */
3303
- range: "4w" | "8w" | "q";
3470
+ range: components["schemas"]["AiUsageSpendRangeId"];
3471
+ granularity?: components["schemas"]["AiUsageSpendGranularity"];
3472
+ /**
3473
+ * Format: date
3474
+ * @description Inclusive start day when `granularity` is `day`.
3475
+ */
3476
+ from?: string;
3477
+ /**
3478
+ * Format: date
3479
+ * @description Inclusive end day when `granularity` is `day`.
3480
+ */
3481
+ to?: string;
3304
3482
  scope: components["schemas"]["ProductivityInsightsAggregatedTeamsScopeDto"];
3305
3483
  /** Format: date-time */
3306
3484
  generatedAt: string;
@@ -3314,7 +3492,16 @@ export interface components {
3314
3492
  prThroughputDeltaPercent: number;
3315
3493
  /** @description Percent change in token usage (recent half vs prior half of range). */
3316
3494
  usageDeltaPercent: number;
3317
- weeks: components["schemas"]["AiUsageSpendRoiProductivitySignalWeekDto"][];
3495
+ /** @description Present in day-mode responses — daily merged PR and token counts. */
3496
+ days?: components["schemas"]["AiUsageSpendRoiProductivitySignalDayDto"][];
3497
+ weeks?: components["schemas"]["AiUsageSpendRoiProductivitySignalWeekDto"][];
3498
+ };
3499
+ AiUsageSpendUsageTrendsProviderDayDto: {
3500
+ providerId: string;
3501
+ providerName: string;
3502
+ spendCents: number;
3503
+ tokenCount: number;
3504
+ activeUsers: number;
3318
3505
  };
3319
3506
  AiUsageSpendUsageTrendsProviderWeekDto: {
3320
3507
  providerId: string;
@@ -3323,6 +3510,12 @@ export interface components {
3323
3510
  tokenCount: number;
3324
3511
  activeUsers: number;
3325
3512
  };
3513
+ AiUsageSpendUsageTrendsDayDto: {
3514
+ /** Format: date */
3515
+ date: string;
3516
+ dayLabel?: string;
3517
+ providers: components["schemas"]["AiUsageSpendUsageTrendsProviderDayDto"][];
3518
+ };
3326
3519
  AiUsageSpendUsageTrendsWeekDto: {
3327
3520
  /** Format: date-time */
3328
3521
  bucketStart: string;
@@ -3334,12 +3527,24 @@ export interface components {
3334
3527
  AiUsageSpendUsageTrendsDto: {
3335
3528
  /** Format: uuid */
3336
3529
  workspaceId: string;
3337
- /** @enum {string} */
3338
- range: "4w" | "8w" | "q";
3530
+ range: components["schemas"]["AiUsageSpendRangeId"];
3531
+ granularity?: components["schemas"]["AiUsageSpendGranularity"];
3532
+ /**
3533
+ * Format: date
3534
+ * @description Inclusive start day when `granularity` is `day`.
3535
+ */
3536
+ from?: string;
3537
+ /**
3538
+ * Format: date
3539
+ * @description Inclusive end day when `granularity` is `day`.
3540
+ */
3541
+ to?: string;
3339
3542
  scope: components["schemas"]["ProductivityInsightsAggregatedTeamsScopeDto"];
3340
3543
  /** Format: date-time */
3341
3544
  generatedAt: string;
3342
- weeks: components["schemas"]["AiUsageSpendUsageTrendsWeekDto"][];
3545
+ /** @description Present in day-mode responses — per-provider spend and usage by day. */
3546
+ days?: components["schemas"]["AiUsageSpendUsageTrendsDayDto"][];
3547
+ weeks?: components["schemas"]["AiUsageSpendUsageTrendsWeekDto"][];
3343
3548
  };
3344
3549
  AiToolMemberSummaryDto: {
3345
3550
  externalId: string;
@@ -5200,6 +5405,9 @@ export type ProductivityInsightsContributorActivitySummaryDto = components['sche
5200
5405
  export type ProductivityInsightsContributorDetailDto = components['schemas']['ProductivityInsightsContributorDetailDto'];
5201
5406
  export type ProductivityInsightsNeedsAttentionItemDto = components['schemas']['ProductivityInsightsNeedsAttentionItemDto'];
5202
5407
  export type ProductivityInsightsNeedsAttentionDto = components['schemas']['ProductivityInsightsNeedsAttentionDto'];
5408
+ export type AiUsageSpendGranularity = components['schemas']['AiUsageSpendGranularity'];
5409
+ export type AiUsageSpendRangeId = components['schemas']['AiUsageSpendRangeId'];
5410
+ export type AiUsageSpendDailyBucketDto = components['schemas']['AiUsageSpendDailyBucketDto'];
5203
5411
  export type AiUsageSpendAggregatedTeamWeekDto = components['schemas']['AiUsageSpendAggregatedTeamWeekDto'];
5204
5412
  export type AiUsageSpendAggregatedTeamRowDto = components['schemas']['AiUsageSpendAggregatedTeamRowDto'];
5205
5413
  export type AiUsageSpendAggregatedTeamsSummaryDto = components['schemas']['AiUsageSpendAggregatedTeamsSummaryDto'];
@@ -5211,15 +5419,23 @@ export type AiUsageSpendKeyInsightItemDto = components['schemas']['AiUsageSpendK
5211
5419
  export type AiUsageSpendKeyInsightsDto = components['schemas']['AiUsageSpendKeyInsightsDto'];
5212
5420
  export type AiAssistedCodeDataQuality = components['schemas']['AiAssistedCodeDataQuality'];
5213
5421
  export type AiAssistedCodeEstimationSource = components['schemas']['AiAssistedCodeEstimationSource'];
5422
+ export type AiUsageSpendAiAssistedCodeDayDto = components['schemas']['AiUsageSpendAiAssistedCodeDayDto'];
5214
5423
  export type AiUsageSpendAiAssistedCodeWeekDto = components['schemas']['AiUsageSpendAiAssistedCodeWeekDto'];
5215
5424
  export type AiUsageSpendAiAssistedCodePercentageDto = components['schemas']['AiUsageSpendAiAssistedCodePercentageDto'];
5425
+ export type ProviderEngagementInsightAvailability = components['schemas']['ProviderEngagementInsightAvailability'];
5426
+ export type AiUsageSpendProviderEngagementMetricDto = components['schemas']['AiUsageSpendProviderEngagementMetricDto'];
5427
+ export type AiUsageSpendProviderEngagementCardDto = components['schemas']['AiUsageSpendProviderEngagementCardDto'];
5428
+ export type AiUsageSpendProviderEngagementInsightsDto = components['schemas']['AiUsageSpendProviderEngagementInsightsDto'];
5216
5429
  export type AiUsageSpendAiToolUsageSpendProviderItemDto = components['schemas']['AiUsageSpendAiToolUsageSpendProviderItemDto'];
5217
5430
  export type AiUsageSpendAiToolUsageSpendModelItemDto = components['schemas']['AiUsageSpendAiToolUsageSpendModelItemDto'];
5218
5431
  export type AiUsageSpendAiToolUsageSpendDto = components['schemas']['AiUsageSpendAiToolUsageSpendDto'];
5219
5432
  export type AiUsageSpendTeamToolHeatmapDto = components['schemas']['AiUsageSpendTeamToolHeatmapDto'];
5433
+ export type AiUsageSpendRoiProductivitySignalDayDto = components['schemas']['AiUsageSpendRoiProductivitySignalDayDto'];
5220
5434
  export type AiUsageSpendRoiProductivitySignalWeekDto = components['schemas']['AiUsageSpendRoiProductivitySignalWeekDto'];
5221
5435
  export type AiUsageSpendRoiProductivitySignalDto = components['schemas']['AiUsageSpendRoiProductivitySignalDto'];
5436
+ export type AiUsageSpendUsageTrendsProviderDayDto = components['schemas']['AiUsageSpendUsageTrendsProviderDayDto'];
5222
5437
  export type AiUsageSpendUsageTrendsProviderWeekDto = components['schemas']['AiUsageSpendUsageTrendsProviderWeekDto'];
5438
+ export type AiUsageSpendUsageTrendsDayDto = components['schemas']['AiUsageSpendUsageTrendsDayDto'];
5223
5439
  export type AiUsageSpendUsageTrendsWeekDto = components['schemas']['AiUsageSpendUsageTrendsWeekDto'];
5224
5440
  export type AiUsageSpendUsageTrendsDto = components['schemas']['AiUsageSpendUsageTrendsDto'];
5225
5441
  export type AiToolMemberSummaryDto = components['schemas']['AiToolMemberSummaryDto'];
@@ -7258,8 +7474,12 @@ export interface operations {
7258
7474
  getAiUsageSpendAggregatedTeams: {
7259
7475
  parameters: {
7260
7476
  query?: {
7261
- /** @description Measure time range (maps to weekly bucket count). */
7262
- rangeId?: "4w" | "8w" | "q";
7477
+ /** @description Productivity insights time range. Daily windows: `7d`, `30d`, `90d`, `180d`, or custom `cr:YYYY-MM-DD:YYYY-MM-DD`. Weekly legacy: `4w`, `8w`, `q` (12 weeks), `12w`, `16w`. Omit when using explicit `from`/`to` day bounds. */
7478
+ rangeId?: components["parameters"]["InsightsProductivityRangeId"];
7479
+ /** @description Inclusive start of a daily window (`YYYY-MM-DD`). When set with `to`, overrides `rangeId` for day-mode responses (max 180 days). */
7480
+ from?: components["parameters"]["InsightsProductivityFrom"];
7481
+ /** @description Inclusive end of a daily window (`YYYY-MM-DD`). When set with `from`, overrides `rangeId` for day-mode responses (max 180 days). */
7482
+ to?: components["parameters"]["InsightsProductivityTo"];
7263
7483
  /** @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). */
7264
7484
  department?: components["parameters"]["InsightsDepartmentFilter"];
7265
7485
  /** @description Team name filter; send `All teams` to include every team. */
@@ -7310,8 +7530,12 @@ export interface operations {
7310
7530
  getAiUsageSpendAggregatedContributors: {
7311
7531
  parameters: {
7312
7532
  query?: {
7313
- /** @description Measure time range (maps to weekly bucket count). */
7314
- rangeId?: "4w" | "8w" | "q";
7533
+ /** @description Productivity insights time range. Daily windows: `7d`, `30d`, `90d`, `180d`, or custom `cr:YYYY-MM-DD:YYYY-MM-DD`. Weekly legacy: `4w`, `8w`, `q` (12 weeks), `12w`, `16w`. Omit when using explicit `from`/`to` day bounds. */
7534
+ rangeId?: components["parameters"]["InsightsProductivityRangeId"];
7535
+ /** @description Inclusive start of a daily window (`YYYY-MM-DD`). When set with `to`, overrides `rangeId` for day-mode responses (max 180 days). */
7536
+ from?: components["parameters"]["InsightsProductivityFrom"];
7537
+ /** @description Inclusive end of a daily window (`YYYY-MM-DD`). When set with `from`, overrides `rangeId` for day-mode responses (max 180 days). */
7538
+ to?: components["parameters"]["InsightsProductivityTo"];
7315
7539
  /** @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). */
7316
7540
  department?: components["parameters"]["InsightsDepartmentFilter"];
7317
7541
  /** @description Team name filter; send `All teams` to include every team. */
@@ -7362,8 +7586,12 @@ export interface operations {
7362
7586
  getAiUsageSpendContributorToolHeatmap: {
7363
7587
  parameters: {
7364
7588
  query?: {
7365
- /** @description Measure time range (maps to weekly bucket count). */
7366
- rangeId?: "4w" | "8w" | "q";
7589
+ /** @description Productivity insights time range. Daily windows: `7d`, `30d`, `90d`, `180d`, or custom `cr:YYYY-MM-DD:YYYY-MM-DD`. Weekly legacy: `4w`, `8w`, `q` (12 weeks), `12w`, `16w`. Omit when using explicit `from`/`to` day bounds. */
7590
+ rangeId?: components["parameters"]["InsightsProductivityRangeId"];
7591
+ /** @description Inclusive start of a daily window (`YYYY-MM-DD`). When set with `to`, overrides `rangeId` for day-mode responses (max 180 days). */
7592
+ from?: components["parameters"]["InsightsProductivityFrom"];
7593
+ /** @description Inclusive end of a daily window (`YYYY-MM-DD`). When set with `from`, overrides `rangeId` for day-mode responses (max 180 days). */
7594
+ to?: components["parameters"]["InsightsProductivityTo"];
7367
7595
  /** @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). */
7368
7596
  department?: components["parameters"]["InsightsDepartmentFilter"];
7369
7597
  /** @description Team name filter; send `All teams` to include every team. */
@@ -7414,8 +7642,12 @@ export interface operations {
7414
7642
  getAiUsageSpendKeyInsights: {
7415
7643
  parameters: {
7416
7644
  query?: {
7417
- /** @description Measure time range (maps to weekly bucket count). */
7418
- rangeId?: "4w" | "8w" | "q";
7645
+ /** @description Productivity insights time range. Daily windows: `7d`, `30d`, `90d`, `180d`, or custom `cr:YYYY-MM-DD:YYYY-MM-DD`. Weekly legacy: `4w`, `8w`, `q` (12 weeks), `12w`, `16w`. Omit when using explicit `from`/`to` day bounds. */
7646
+ rangeId?: components["parameters"]["InsightsProductivityRangeId"];
7647
+ /** @description Inclusive start of a daily window (`YYYY-MM-DD`). When set with `to`, overrides `rangeId` for day-mode responses (max 180 days). */
7648
+ from?: components["parameters"]["InsightsProductivityFrom"];
7649
+ /** @description Inclusive end of a daily window (`YYYY-MM-DD`). When set with `from`, overrides `rangeId` for day-mode responses (max 180 days). */
7650
+ to?: components["parameters"]["InsightsProductivityTo"];
7419
7651
  /** @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). */
7420
7652
  department?: components["parameters"]["InsightsDepartmentFilter"];
7421
7653
  /** @description Team name filter; send `All teams` to include every team. */
@@ -7466,8 +7698,12 @@ export interface operations {
7466
7698
  getAiUsageSpendAiAssistedCodePercentage: {
7467
7699
  parameters: {
7468
7700
  query?: {
7469
- /** @description Measure time range (maps to weekly bucket count). */
7470
- rangeId?: "4w" | "8w" | "q";
7701
+ /** @description Productivity insights time range. Daily windows: `7d`, `30d`, `90d`, `180d`, or custom `cr:YYYY-MM-DD:YYYY-MM-DD`. Weekly legacy: `4w`, `8w`, `q` (12 weeks), `12w`, `16w`. Omit when using explicit `from`/`to` day bounds. */
7702
+ rangeId?: components["parameters"]["InsightsProductivityRangeId"];
7703
+ /** @description Inclusive start of a daily window (`YYYY-MM-DD`). When set with `to`, overrides `rangeId` for day-mode responses (max 180 days). */
7704
+ from?: components["parameters"]["InsightsProductivityFrom"];
7705
+ /** @description Inclusive end of a daily window (`YYYY-MM-DD`). When set with `from`, overrides `rangeId` for day-mode responses (max 180 days). */
7706
+ to?: components["parameters"]["InsightsProductivityTo"];
7471
7707
  /** @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). */
7472
7708
  department?: components["parameters"]["InsightsDepartmentFilter"];
7473
7709
  /** @description Team name filter; send `All teams` to include every team. */
@@ -7515,11 +7751,77 @@ export interface operations {
7515
7751
  };
7516
7752
  };
7517
7753
  };
7754
+ getAiUsageSpendProviderEngagementInsights: {
7755
+ parameters: {
7756
+ query?: {
7757
+ /** @description Productivity insights time range. Daily windows: `7d`, `30d`, `90d`, `180d`, or custom `cr:YYYY-MM-DD:YYYY-MM-DD`. Weekly legacy: `4w`, `8w`, `q` (12 weeks), `12w`, `16w`. Omit when using explicit `from`/`to` day bounds. */
7758
+ rangeId?: components["parameters"]["InsightsProductivityRangeId"];
7759
+ /** @description Inclusive start of a daily window (`YYYY-MM-DD`). When set with `to`, overrides `rangeId` for day-mode responses (max 180 days). */
7760
+ from?: components["parameters"]["InsightsProductivityFrom"];
7761
+ /** @description Inclusive end of a daily window (`YYYY-MM-DD`). When set with `from`, overrides `rangeId` for day-mode responses (max 180 days). */
7762
+ to?: components["parameters"]["InsightsProductivityTo"];
7763
+ /** @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). */
7764
+ department?: components["parameters"]["InsightsDepartmentFilter"];
7765
+ /** @description Team name filter; send `All teams` to include every team. */
7766
+ team?: string;
7767
+ /** @description ISO timestamp for the end of the last weekly bucket; omit for current week. */
7768
+ windowEnd?: string;
7769
+ /** @description When set, aggregate engagement metrics for a single AI-tool member (user detail pages). Mutually exclusive with `scopeTeamId`. */
7770
+ memberExternalId?: string;
7771
+ /** @description Org-chart team id — aggregate engagement for members mapped to that team (team detail pages). Mutually exclusive with `memberExternalId`. */
7772
+ scopeTeamId?: string;
7773
+ /** @description Optional provider id filter (`cursor`, `claude`) for detail pages. */
7774
+ provider?: "cursor" | "claude";
7775
+ };
7776
+ header?: never;
7777
+ path: {
7778
+ workspaceId: components["parameters"]["WorkspaceId"];
7779
+ };
7780
+ cookie?: never;
7781
+ };
7782
+ requestBody?: never;
7783
+ responses: {
7784
+ /** @description Provider engagement insight cards */
7785
+ 200: {
7786
+ headers: {
7787
+ [name: string]: unknown;
7788
+ };
7789
+ content: {
7790
+ "application/json": components["schemas"]["AiUsageSpendProviderEngagementInsightsDto"];
7791
+ };
7792
+ };
7793
+ /** @description Invalid query parameters */
7794
+ 400: {
7795
+ headers: {
7796
+ [name: string]: unknown;
7797
+ };
7798
+ content: {
7799
+ "application/json": {
7800
+ /** @example invalid_query */
7801
+ error: string;
7802
+ };
7803
+ };
7804
+ };
7805
+ 401: components["responses"]["Unauthorized"];
7806
+ 403: components["responses"]["Forbidden"];
7807
+ /** @description Workspace does not exist or malformed workspaceId */
7808
+ 404: {
7809
+ headers: {
7810
+ [name: string]: unknown;
7811
+ };
7812
+ content?: never;
7813
+ };
7814
+ };
7815
+ };
7518
7816
  getAiUsageSpendAiToolUsageSpend: {
7519
7817
  parameters: {
7520
7818
  query?: {
7521
- /** @description Measure time range (maps to weekly bucket count). */
7522
- rangeId?: "4w" | "8w" | "q";
7819
+ /** @description Productivity insights time range. Daily windows: `7d`, `30d`, `90d`, `180d`, or custom `cr:YYYY-MM-DD:YYYY-MM-DD`. Weekly legacy: `4w`, `8w`, `q` (12 weeks), `12w`, `16w`. Omit when using explicit `from`/`to` day bounds. */
7820
+ rangeId?: components["parameters"]["InsightsProductivityRangeId"];
7821
+ /** @description Inclusive start of a daily window (`YYYY-MM-DD`). When set with `to`, overrides `rangeId` for day-mode responses (max 180 days). */
7822
+ from?: components["parameters"]["InsightsProductivityFrom"];
7823
+ /** @description Inclusive end of a daily window (`YYYY-MM-DD`). When set with `from`, overrides `rangeId` for day-mode responses (max 180 days). */
7824
+ to?: components["parameters"]["InsightsProductivityTo"];
7523
7825
  /** @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). */
7524
7826
  department?: components["parameters"]["InsightsDepartmentFilter"];
7525
7827
  /** @description Team name filter; send `All teams` to include every team. */
@@ -7570,8 +7872,12 @@ export interface operations {
7570
7872
  getAiUsageSpendTeamToolHeatmap: {
7571
7873
  parameters: {
7572
7874
  query?: {
7573
- /** @description Measure time range (maps to weekly bucket count). */
7574
- rangeId?: "4w" | "8w" | "q";
7875
+ /** @description Productivity insights time range. Daily windows: `7d`, `30d`, `90d`, `180d`, or custom `cr:YYYY-MM-DD:YYYY-MM-DD`. Weekly legacy: `4w`, `8w`, `q` (12 weeks), `12w`, `16w`. Omit when using explicit `from`/`to` day bounds. */
7876
+ rangeId?: components["parameters"]["InsightsProductivityRangeId"];
7877
+ /** @description Inclusive start of a daily window (`YYYY-MM-DD`). When set with `to`, overrides `rangeId` for day-mode responses (max 180 days). */
7878
+ from?: components["parameters"]["InsightsProductivityFrom"];
7879
+ /** @description Inclusive end of a daily window (`YYYY-MM-DD`). When set with `from`, overrides `rangeId` for day-mode responses (max 180 days). */
7880
+ to?: components["parameters"]["InsightsProductivityTo"];
7575
7881
  /** @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). */
7576
7882
  department?: components["parameters"]["InsightsDepartmentFilter"];
7577
7883
  /** @description Team name filter; send `All teams` to include every team. */
@@ -7622,8 +7928,12 @@ export interface operations {
7622
7928
  getAiUsageSpendRoiProductivitySignal: {
7623
7929
  parameters: {
7624
7930
  query?: {
7625
- /** @description Measure time range (maps to weekly bucket count). */
7626
- rangeId?: "4w" | "8w" | "q";
7931
+ /** @description Productivity insights time range. Daily windows: `7d`, `30d`, `90d`, `180d`, or custom `cr:YYYY-MM-DD:YYYY-MM-DD`. Weekly legacy: `4w`, `8w`, `q` (12 weeks), `12w`, `16w`. Omit when using explicit `from`/`to` day bounds. */
7932
+ rangeId?: components["parameters"]["InsightsProductivityRangeId"];
7933
+ /** @description Inclusive start of a daily window (`YYYY-MM-DD`). When set with `to`, overrides `rangeId` for day-mode responses (max 180 days). */
7934
+ from?: components["parameters"]["InsightsProductivityFrom"];
7935
+ /** @description Inclusive end of a daily window (`YYYY-MM-DD`). When set with `from`, overrides `rangeId` for day-mode responses (max 180 days). */
7936
+ to?: components["parameters"]["InsightsProductivityTo"];
7627
7937
  /** @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). */
7628
7938
  department?: components["parameters"]["InsightsDepartmentFilter"];
7629
7939
  /** @description Team name filter; send `All teams` to include every team. */
@@ -7674,8 +7984,12 @@ export interface operations {
7674
7984
  getAiUsageSpendUsageTrends: {
7675
7985
  parameters: {
7676
7986
  query?: {
7677
- /** @description Measure time range (maps to weekly bucket count). */
7678
- rangeId?: "4w" | "8w" | "q";
7987
+ /** @description Productivity insights time range. Daily windows: `7d`, `30d`, `90d`, `180d`, or custom `cr:YYYY-MM-DD:YYYY-MM-DD`. Weekly legacy: `4w`, `8w`, `q` (12 weeks), `12w`, `16w`. Omit when using explicit `from`/`to` day bounds. */
7988
+ rangeId?: components["parameters"]["InsightsProductivityRangeId"];
7989
+ /** @description Inclusive start of a daily window (`YYYY-MM-DD`). When set with `to`, overrides `rangeId` for day-mode responses (max 180 days). */
7990
+ from?: components["parameters"]["InsightsProductivityFrom"];
7991
+ /** @description Inclusive end of a daily window (`YYYY-MM-DD`). When set with `from`, overrides `rangeId` for day-mode responses (max 180 days). */
7992
+ to?: components["parameters"]["InsightsProductivityTo"];
7679
7993
  /** @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). */
7680
7994
  department?: components["parameters"]["InsightsDepartmentFilter"];
7681
7995
  /** @description Team name filter; send `All teams` to include every team. */