@vibexp/api-client 0.45.0 → 0.47.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.
@@ -1279,205 +1279,6 @@ export type SupportResponse = {
1279
1279
  message: string;
1280
1280
  success: boolean;
1281
1281
  };
1282
- export type IncomingHookPayload = {
1283
- /**
1284
- * Unique identifier for the Claude Code session
1285
- */
1286
- session_id: string;
1287
- /**
1288
- * Path to the conversation transcript file
1289
- */
1290
- transcript_path?: string | null;
1291
- /**
1292
- * Current working directory
1293
- */
1294
- cwd?: string | null;
1295
- /**
1296
- * Name of the hook event that triggered this payload
1297
- */
1298
- hook_event_name: string;
1299
- /**
1300
- * Name of the tool being used
1301
- */
1302
- tool_name?: string | null;
1303
- /**
1304
- * Input data for the tool
1305
- */
1306
- tool_input?: {
1307
- [key: string]: unknown;
1308
- } | null;
1309
- /**
1310
- * Response data from the tool
1311
- */
1312
- tool_response?: {
1313
- [key: string]: unknown;
1314
- } | null;
1315
- /**
1316
- * User prompt or message
1317
- */
1318
- prompt?: string | null;
1319
- /**
1320
- * Additional message or context
1321
- */
1322
- message?: string | null;
1323
- };
1324
- export type ClaudeCodeHookPayload = {
1325
- /**
1326
- * Unique identifier for the stored payload
1327
- */
1328
- id: number;
1329
- /**
1330
- * ID of the user who submitted the hook (omitted when not set)
1331
- */
1332
- user_id?: string;
1333
- /**
1334
- * ID of the user's default team at ingest time
1335
- */
1336
- team_id: string;
1337
- /**
1338
- * Unique identifier for the Claude Code session
1339
- */
1340
- session_id: string;
1341
- /**
1342
- * Path to the conversation transcript file
1343
- */
1344
- transcript_path?: string | null;
1345
- /**
1346
- * Current working directory
1347
- */
1348
- cwd?: string | null;
1349
- /**
1350
- * Name of the hook event that triggered this payload
1351
- */
1352
- hook_event_name: string;
1353
- /**
1354
- * Name of the tool being used
1355
- */
1356
- tool_name?: string | null;
1357
- /**
1358
- * Input data for the tool
1359
- */
1360
- tool_input?: {
1361
- [key: string]: unknown;
1362
- } | null;
1363
- /**
1364
- * Response data from the tool
1365
- */
1366
- tool_response?: {
1367
- [key: string]: unknown;
1368
- } | null;
1369
- /**
1370
- * User prompt or message
1371
- */
1372
- prompt?: string | null;
1373
- /**
1374
- * Additional message or context
1375
- */
1376
- message?: string | null;
1377
- /**
1378
- * Complete payload data as JSONB
1379
- */
1380
- payload: {
1381
- [key: string]: unknown;
1382
- };
1383
- /**
1384
- * When the record was created
1385
- */
1386
- created_at: string;
1387
- /**
1388
- * When the record was last updated
1389
- */
1390
- updated_at: string;
1391
- };
1392
- export type ClaudeCodeHooksPaginatedResponse = {
1393
- data: Array<ClaudeCodeHookPayload>;
1394
- /**
1395
- * Current page number
1396
- */
1397
- page: number;
1398
- /**
1399
- * Number of items per page
1400
- */
1401
- limit: number;
1402
- /**
1403
- * Total number of records
1404
- */
1405
- total: number;
1406
- /**
1407
- * Total number of pages
1408
- */
1409
- total_pages: number;
1410
- };
1411
- export type HookCreatedResponse = {
1412
- status: string;
1413
- message: string;
1414
- data: {
1415
- id: number;
1416
- created_at: string;
1417
- updated_at: string;
1418
- };
1419
- };
1420
- export type HookListResponse = {
1421
- status: string;
1422
- message: string;
1423
- data: ClaudeCodeHooksPaginatedResponse;
1424
- };
1425
- export type SessionSummary = {
1426
- session_id: string;
1427
- first_seen: string;
1428
- last_seen: string;
1429
- hook_count: number;
1430
- latest_cwd?: string | null;
1431
- unique_tools: number;
1432
- };
1433
- export type SessionsResponse = {
1434
- data: Array<SessionSummary>;
1435
- page: number;
1436
- limit: number;
1437
- total: number;
1438
- total_pages: number;
1439
- };
1440
- export type SessionCountsResponse = {
1441
- total_sessions: number;
1442
- counts: Array<{
1443
- date?: string;
1444
- count?: number;
1445
- }>;
1446
- };
1447
- export type OverviewStats = {
1448
- total_sessions: number;
1449
- sessions_this_week: number;
1450
- sessions_last_week: number;
1451
- weekly_trend_percent: number;
1452
- avg_user_prompts_per_session: number;
1453
- total_unique_tools: number;
1454
- top_tools: Array<{
1455
- tool_name?: string;
1456
- count?: number;
1457
- }>;
1458
- avg_session_duration_minutes: number;
1459
- /**
1460
- * Total number of memories created by the user
1461
- */
1462
- total_memories: number;
1463
- };
1464
- export type RecentActivity = {
1465
- session_id: string;
1466
- cwd?: string | null;
1467
- tool_name?: string | null;
1468
- tool_input?: {
1469
- [key: string]: unknown;
1470
- } | null;
1471
- hook_event_name: string;
1472
- created_at: string;
1473
- };
1474
- export type RecentActivitiesResponse = {
1475
- activities: Array<RecentActivity>;
1476
- page: number;
1477
- limit: number;
1478
- total: number;
1479
- total_pages: number;
1480
- };
1481
1282
  export type Artifact = {
1482
1283
  /**
1483
1284
  * Unique identifier for the artifact
@@ -2840,18 +2641,6 @@ export type UsageMetricsRow = {
2840
2641
  * Number of agent executions this week
2841
2642
  */
2842
2643
  agent_executions?: number;
2843
- /**
2844
- * Number of distinct Claude Code sessions this week
2845
- */
2846
- claude_sessions?: number;
2847
- /**
2848
- * Number of distinct Cursor IDE sessions this week
2849
- */
2850
- cursor_sessions?: number;
2851
- /**
2852
- * Total AI tool sessions (Claude + Cursor)
2853
- */
2854
- total_ai_tool_sessions?: number;
2855
2644
  };
2856
2645
  /**
2857
2646
  * Per-user activity summary
@@ -3104,455 +2893,117 @@ export type ConversationExecutionsResponse = {
3104
2893
  count: number;
3105
2894
  };
3106
2895
  /**
3107
- * Legacy CLI-compatible error shape `{"status":"error","message":...}` emitted by the AI-tools hook handlers (NOT the RFC 9457 ErrorResponse used elsewhere). Resource-limit 403 responses additionally include a `details` object.
2896
+ * A team (workspace) in the system. `role`, `permissions` and `member_count` are computed at read time for the requesting user.
3108
2897
  */
3109
- export type HookErrorResponse = {
3110
- status: string;
3111
- message: string;
3112
- /**
3113
- * Present only on resource-limit (403) responses
3114
- */
3115
- details?: {
3116
- resource_type?: string;
3117
- current_usage?: number;
3118
- limit?: number;
3119
- };
3120
- };
3121
- export type SessionsListResponse = {
3122
- status: string;
3123
- message: string;
3124
- data: SessionsResponse;
3125
- };
3126
- export type SessionCountsApiResponse = {
3127
- status: string;
3128
- message: string;
3129
- data: SessionCountsResponse;
3130
- };
3131
- export type OverviewStatsApiResponse = {
3132
- status: string;
3133
- message: string;
3134
- data: OverviewStats;
3135
- };
3136
- export type RecentActivitiesApiResponse = {
3137
- status: string;
3138
- message: string;
3139
- data: RecentActivitiesResponse;
3140
- };
3141
- export type IncomingCursorHookPayload = unknown & {
3142
- /**
3143
- * Cursor conversation identifier (used as session_id when session_id is absent)
3144
- */
3145
- conversation_id?: string;
3146
- /**
3147
- * Cursor generation identifier
3148
- */
3149
- generation_id?: string;
3150
- /**
3151
- * Workspace root directories
3152
- */
3153
- workspace_roots?: Array<string>;
3154
- /**
3155
- * Session identifier (legacy/optional; falls back to conversation_id)
3156
- */
3157
- session_id?: string;
3158
- /**
3159
- * Name of the hook event that triggered this payload
3160
- */
3161
- hook_event_name: string;
3162
- /**
3163
- * Name of the tool being used
3164
- */
3165
- tool_name?: string | null;
2898
+ export type Team = {
2899
+ id: string;
3166
2900
  /**
3167
- * Hook configuration data
2901
+ * User ID of the team owner
3168
2902
  */
3169
- configuration?: {
3170
- [key: string]: unknown;
3171
- } | null;
2903
+ owner_id: string;
2904
+ name: string;
2905
+ slug: string;
2906
+ description: string;
3172
2907
  /**
3173
- * Reference data
2908
+ * Whether this is the user's personal workspace (cannot be deleted or hold a team subscription)
3174
2909
  */
3175
- reference?: {
3176
- [key: string]: unknown;
3177
- } | null;
2910
+ is_personal: boolean;
3178
2911
  /**
3179
- * Context data
2912
+ * The requesting user's role in this team: owner, admin, or member. Populated at runtime on every response that carries a team, including create (where the caller is by definition the owner). Not an enum constraint: older responses may still carry an empty string.
3180
2913
  */
3181
- context?: {
3182
- [key: string]: unknown;
3183
- } | null;
2914
+ role?: string;
3184
2915
  /**
3185
- * Input data for the hook
2916
+ * Exactly what `role` permits the requesting user to do in this team, expanded server-side from the role matrix (epic #220). Clients MUST gate their UI on these strings rather than re-deriving them from `role` — the matrix lives on the server and may change without a client release.
2917
+ * Computed at read time for the requesting user, alongside `role`, and always present (an empty array means the role grants nothing). The values are stable API surface: renaming one is a breaking change, and they are kept byte-identical to the `internal/authz` constants by a drift test. Meanings:
2918
+ * * `team.update` — change team name, slug or description. * `team.delete` — delete the team (owner only). * `team.transfer` — transfer ownership to another member (owner only). * `team.settings.update` — change team-level configuration, such as search ranking. * `member.invite` — invite new members. * `member.remove` — remove members from the team. * `member.role.update` — change a member's role. * `project.create` — create a project in the team. * `project.update` — update any project in the team. * `project.delete` — delete any project in the team. * `resource.create` — create a prompt, memory, artifact, blueprint or agent. * `resource.update.any` — update any resource, including other members'. * `resource.delete.own` — delete a resource the caller created. * `resource.delete.any` — delete a resource created by someone else. * `feed.delete.any` — delete another member's feed post or reply (moderation).
3186
2919
  */
3187
- input?: {
3188
- [key: string]: unknown;
3189
- } | null;
2920
+ permissions: Array<'team.update' | 'team.delete' | 'team.transfer' | 'team.settings.update' | 'member.invite' | 'member.remove' | 'member.role.update' | 'project.create' | 'project.update' | 'project.delete' | 'resource.create' | 'resource.update.any' | 'resource.delete.own' | 'resource.delete.any' | 'feed.delete.any'>;
3190
2921
  /**
3191
- * Output data from the hook
2922
+ * Number of members in this team. Populated only on list responses; 0 on create and single-team reads.
3192
2923
  */
3193
- output?: {
3194
- [key: string]: unknown;
3195
- } | null;
2924
+ member_count?: number;
2925
+ created_at: string;
2926
+ updated_at: string;
2927
+ };
2928
+ /**
2929
+ * Request body for creating a team
2930
+ */
2931
+ export type CreateTeamRequest = {
3196
2932
  /**
3197
- * Induced failure data
2933
+ * Team name (required, at most 100 characters)
3198
2934
  */
3199
- inducedFailure?: {
3200
- [key: string]: unknown;
3201
- } | null;
2935
+ name: string;
3202
2936
  /**
3203
- * Shell command (beforeShellExecution)
2937
+ * Optional team description (at most 500 characters)
3204
2938
  */
3205
- command?: string | null;
2939
+ description?: string;
2940
+ };
2941
+ /**
2942
+ * Request body for updating a team. At least one of `name` or `description` must be provided.
2943
+ */
2944
+ export type UpdateTeamRequest = {
3206
2945
  /**
3207
- * Current working directory (beforeShellExecution)
2946
+ * New team name (must be non-empty when provided)
3208
2947
  */
3209
- cwd?: string | null;
2948
+ name?: string;
3210
2949
  /**
3211
- * Tool input data (beforeMCPExecution)
2950
+ * New team description
3212
2951
  */
3213
- tool_input?: {
3214
- [key: string]: unknown;
3215
- } | null;
2952
+ description?: string;
2953
+ };
2954
+ /**
2955
+ * Paginated list of teams the user belongs to
2956
+ */
2957
+ export type TeamListResponse = {
2958
+ teams: Array<Team>;
2959
+ total_count: number;
2960
+ page: number;
2961
+ page_size: number;
2962
+ };
2963
+ /**
2964
+ * Detailed information about a team member, including invitation status
2965
+ */
2966
+ export type TeamMemberDetail = {
2967
+ user_id: string;
2968
+ email: string;
2969
+ name: string;
2970
+ role: 'owner' | 'admin' | 'member';
3216
2971
  /**
3217
- * URL (beforeMCPExecution)
2972
+ * When the member joined the team
3218
2973
  */
3219
- url?: string | null;
2974
+ joined_at: string;
3220
2975
  /**
3221
- * File path (afterFileEdit, beforeReadFile)
2976
+ * Invitation status for this member (omitted when not applicable)
3222
2977
  */
3223
- file_path?: string | null;
2978
+ invitation_status?: 'pending' | 'accepted';
2979
+ };
2980
+ /**
2981
+ * Request body for changing a team member's role. Only `member` and `admin` are
2982
+ * accepted: a team has exactly one owner, and ownership moves solely through
2983
+ * the transfer-ownership operation.
2984
+ *
2985
+ */
2986
+ export type UpdateTeamMemberRoleRequest = {
3224
2987
  /**
3225
- * File edits (afterFileEdit)
2988
+ * The role to assign to the member
3226
2989
  */
3227
- edits?: Array<{
3228
- [key: string]: unknown;
3229
- }>;
2990
+ role: 'member' | 'admin';
2991
+ };
2992
+ /**
2993
+ * The team member after the role change
2994
+ */
2995
+ export type UpdateTeamMemberRoleResponse = {
2996
+ member: TeamMemberDetail;
2997
+ };
2998
+ /**
2999
+ * Request body for transferring team ownership. The target must already be a
3000
+ * member of the team; they become the owner and the current owner becomes an
3001
+ * admin, in a single transaction.
3002
+ *
3003
+ */
3004
+ export type TransferTeamOwnershipRequest = {
3230
3005
  /**
3231
- * File content (beforeReadFile)
3232
- */
3233
- content?: string | null;
3234
- /**
3235
- * Attachments (beforeReadFile, beforeSubmitPrompt)
3236
- */
3237
- attachments?: Array<{
3238
- [key: string]: unknown;
3239
- }>;
3240
- /**
3241
- * User prompt (beforeSubmitPrompt)
3242
- */
3243
- prompt?: string | null;
3244
- /**
3245
- * Status (stop hook)
3246
- */
3247
- status?: string | null;
3248
- /**
3249
- * Permission response field
3250
- */
3251
- permission?: string | null;
3252
- /**
3253
- * User message response field
3254
- */
3255
- userMessage?: string | null;
3256
- /**
3257
- * Agent message response field
3258
- */
3259
- agentMessage?: string | null;
3260
- /**
3261
- * Continue response field
3262
- */
3263
- continue?: boolean | null;
3264
- };
3265
- export type CursorIdeHookPayload = {
3266
- /**
3267
- * Unique identifier for the stored payload
3268
- */
3269
- id: number;
3270
- /**
3271
- * ID of the user who submitted the hook (omitted when not set)
3272
- */
3273
- user_id?: string;
3274
- /**
3275
- * ID of the user's default team at ingest time
3276
- */
3277
- team_id: string;
3278
- /**
3279
- * Session identifier (stores conversation_id from Cursor)
3280
- */
3281
- session_id: string;
3282
- /**
3283
- * Cursor conversation identifier
3284
- */
3285
- conversation_id?: string | null;
3286
- /**
3287
- * Cursor generation identifier
3288
- */
3289
- generation_id?: string | null;
3290
- /**
3291
- * Name of the hook event that triggered this payload
3292
- */
3293
- hook_event_name: string;
3294
- /**
3295
- * Name of the tool being used
3296
- */
3297
- tool_name?: string | null;
3298
- /**
3299
- * Workspace root directories
3300
- */
3301
- workspace_roots?: Array<string>;
3302
- /**
3303
- * Hook configuration data
3304
- */
3305
- configuration?: {
3306
- [key: string]: unknown;
3307
- } | null;
3308
- /**
3309
- * Reference data
3310
- */
3311
- reference?: {
3312
- [key: string]: unknown;
3313
- } | null;
3314
- /**
3315
- * Context data
3316
- */
3317
- context?: {
3318
- [key: string]: unknown;
3319
- } | null;
3320
- /**
3321
- * Input data for the hook
3322
- */
3323
- input?: {
3324
- [key: string]: unknown;
3325
- } | null;
3326
- /**
3327
- * Output data from the hook
3328
- */
3329
- output?: {
3330
- [key: string]: unknown;
3331
- } | null;
3332
- /**
3333
- * Induced failure data
3334
- */
3335
- induced_failure?: {
3336
- [key: string]: unknown;
3337
- } | null;
3338
- /**
3339
- * Complete payload data as JSONB
3340
- */
3341
- payload: {
3342
- [key: string]: unknown;
3343
- };
3344
- /**
3345
- * When the record was created
3346
- */
3347
- created_at: string;
3348
- /**
3349
- * When the record was last updated
3350
- */
3351
- updated_at: string;
3352
- };
3353
- export type CursorIdeHooksPaginatedResponse = {
3354
- data: Array<CursorIdeHookPayload>;
3355
- /**
3356
- * Current page number
3357
- */
3358
- page: number;
3359
- /**
3360
- * Number of items per page
3361
- */
3362
- limit: number;
3363
- /**
3364
- * Total number of records
3365
- */
3366
- total: number;
3367
- /**
3368
- * Total number of pages
3369
- */
3370
- total_pages: number;
3371
- };
3372
- export type CursorIdeHookListResponse = {
3373
- status: string;
3374
- message: string;
3375
- data: CursorIdeHooksPaginatedResponse;
3376
- };
3377
- /**
3378
- * Summary of a Cursor IDE session (unlike Claude Code sessions, no latest_cwd)
3379
- */
3380
- export type CursorSessionSummary = {
3381
- session_id: string;
3382
- first_seen: string;
3383
- last_seen: string;
3384
- hook_count: number;
3385
- unique_tools: number;
3386
- };
3387
- export type CursorSessionsResponse = {
3388
- data: Array<CursorSessionSummary>;
3389
- page: number;
3390
- limit: number;
3391
- total: number;
3392
- total_pages: number;
3393
- };
3394
- export type CursorSessionsListResponse = {
3395
- status: string;
3396
- message: string;
3397
- data: CursorSessionsResponse;
3398
- };
3399
- /**
3400
- * Overview statistics for Cursor IDE (unlike Claude Code, no total_memories)
3401
- */
3402
- export type CursorOverviewStats = {
3403
- total_sessions: number;
3404
- sessions_this_week: number;
3405
- sessions_last_week: number;
3406
- weekly_trend_percent: number;
3407
- avg_user_prompts_per_session: number;
3408
- total_unique_tools: number;
3409
- top_tools: Array<{
3410
- tool_name?: string;
3411
- count?: number;
3412
- }>;
3413
- avg_session_duration_minutes: number;
3414
- };
3415
- export type CursorOverviewStatsApiResponse = {
3416
- status: string;
3417
- message: string;
3418
- data: CursorOverviewStats;
3419
- };
3420
- /**
3421
- * Recent Cursor IDE activity (carries `input` instead of Claude Code's cwd/tool_input)
3422
- */
3423
- export type CursorRecentActivity = {
3424
- session_id: string;
3425
- tool_name?: string | null;
3426
- input?: {
3427
- [key: string]: unknown;
3428
- } | null;
3429
- hook_event_name: string;
3430
- created_at: string;
3431
- };
3432
- export type CursorRecentActivitiesResponse = {
3433
- activities: Array<CursorRecentActivity>;
3434
- page: number;
3435
- limit: number;
3436
- total: number;
3437
- total_pages: number;
3438
- };
3439
- export type CursorRecentActivitiesApiResponse = {
3440
- status: string;
3441
- message: string;
3442
- data: CursorRecentActivitiesResponse;
3443
- };
3444
- /**
3445
- * A team (workspace) in the system. `role`, `permissions` and `member_count` are computed at read time for the requesting user.
3446
- */
3447
- export type Team = {
3448
- id: string;
3449
- /**
3450
- * User ID of the team owner
3451
- */
3452
- owner_id: string;
3453
- name: string;
3454
- slug: string;
3455
- description: string;
3456
- /**
3457
- * Whether this is the user's personal workspace (cannot be deleted or hold a team subscription)
3458
- */
3459
- is_personal: boolean;
3460
- /**
3461
- * The requesting user's role in this team: owner, admin, or member. Populated at runtime on every response that carries a team, including create (where the caller is by definition the owner). Not an enum constraint: older responses may still carry an empty string.
3462
- */
3463
- role?: string;
3464
- /**
3465
- * Exactly what `role` permits the requesting user to do in this team, expanded server-side from the role matrix (epic #220). Clients MUST gate their UI on these strings rather than re-deriving them from `role` — the matrix lives on the server and may change without a client release.
3466
- * Computed at read time for the requesting user, alongside `role`, and always present (an empty array means the role grants nothing). The values are stable API surface: renaming one is a breaking change, and they are kept byte-identical to the `internal/authz` constants by a drift test. Meanings:
3467
- * * `team.update` — change team name, slug or description. * `team.delete` — delete the team (owner only). * `team.transfer` — transfer ownership to another member (owner only). * `team.settings.update` — change team-level configuration, such as search ranking. * `member.invite` — invite new members. * `member.remove` — remove members from the team. * `member.role.update` — change a member's role. * `project.create` — create a project in the team. * `project.update` — update any project in the team. * `project.delete` — delete any project in the team. * `resource.create` — create a prompt, memory, artifact, blueprint or agent. * `resource.update.any` — update any resource, including other members'. * `resource.delete.own` — delete a resource the caller created. * `resource.delete.any` — delete a resource created by someone else. * `feed.delete.any` — delete another member's feed post or reply (moderation).
3468
- */
3469
- permissions: Array<'team.update' | 'team.delete' | 'team.transfer' | 'team.settings.update' | 'member.invite' | 'member.remove' | 'member.role.update' | 'project.create' | 'project.update' | 'project.delete' | 'resource.create' | 'resource.update.any' | 'resource.delete.own' | 'resource.delete.any' | 'feed.delete.any'>;
3470
- /**
3471
- * Number of members in this team. Populated only on list responses; 0 on create and single-team reads.
3472
- */
3473
- member_count?: number;
3474
- created_at: string;
3475
- updated_at: string;
3476
- };
3477
- /**
3478
- * Request body for creating a team
3479
- */
3480
- export type CreateTeamRequest = {
3481
- /**
3482
- * Team name (required, at most 100 characters)
3483
- */
3484
- name: string;
3485
- /**
3486
- * Optional team description (at most 500 characters)
3487
- */
3488
- description?: string;
3489
- };
3490
- /**
3491
- * Request body for updating a team. At least one of `name` or `description` must be provided.
3492
- */
3493
- export type UpdateTeamRequest = {
3494
- /**
3495
- * New team name (must be non-empty when provided)
3496
- */
3497
- name?: string;
3498
- /**
3499
- * New team description
3500
- */
3501
- description?: string;
3502
- };
3503
- /**
3504
- * Paginated list of teams the user belongs to
3505
- */
3506
- export type TeamListResponse = {
3507
- teams: Array<Team>;
3508
- total_count: number;
3509
- page: number;
3510
- page_size: number;
3511
- };
3512
- /**
3513
- * Detailed information about a team member, including invitation status
3514
- */
3515
- export type TeamMemberDetail = {
3516
- user_id: string;
3517
- email: string;
3518
- name: string;
3519
- role: 'owner' | 'admin' | 'member';
3520
- /**
3521
- * When the member joined the team
3522
- */
3523
- joined_at: string;
3524
- /**
3525
- * Invitation status for this member (omitted when not applicable)
3526
- */
3527
- invitation_status?: 'pending' | 'accepted';
3528
- };
3529
- /**
3530
- * Request body for changing a team member's role. Only `member` and `admin` are
3531
- * accepted: a team has exactly one owner, and ownership moves solely through
3532
- * the transfer-ownership operation.
3533
- *
3534
- */
3535
- export type UpdateTeamMemberRoleRequest = {
3536
- /**
3537
- * The role to assign to the member
3538
- */
3539
- role: 'member' | 'admin';
3540
- };
3541
- /**
3542
- * The team member after the role change
3543
- */
3544
- export type UpdateTeamMemberRoleResponse = {
3545
- member: TeamMemberDetail;
3546
- };
3547
- /**
3548
- * Request body for transferring team ownership. The target must already be a
3549
- * member of the team; they become the owner and the current owner becomes an
3550
- * admin, in a single transaction.
3551
- *
3552
- */
3553
- export type TransferTeamOwnershipRequest = {
3554
- /**
3555
- * User ID of the member who will become the team owner
3006
+ * User ID of the member who will become the team owner
3556
3007
  */
3557
3008
  new_owner_id: string;
3558
3009
  };
@@ -7452,79 +6903,21 @@ export type RestoreBlueprintVersionResponses = {
7452
6903
  200: Blueprint;
7453
6904
  };
7454
6905
  export type RestoreBlueprintVersionResponse = RestoreBlueprintVersionResponses[keyof RestoreBlueprintVersionResponses];
7455
- export type DeleteClaudeCodeSessionData = {
6906
+ export type GetResourceUsageData = {
7456
6907
  body?: never;
7457
- path: {
7458
- /**
7459
- * Session ID
7460
- */
7461
- session_id: string;
7462
- };
6908
+ path?: never;
7463
6909
  query?: never;
7464
- url: '/api/v1/ai-tools/claude-code/sessions/{session_id}';
6910
+ url: '/api/v1/resource-usage';
7465
6911
  };
7466
- export type DeleteClaudeCodeSessionErrors = {
6912
+ export type GetResourceUsageErrors = {
7467
6913
  /**
7468
- * Unauthorized
6914
+ * Unauthorized - JWT token missing or invalid
7469
6915
  */
7470
6916
  401: ErrorResponse;
7471
6917
  /**
7472
- * Session not found or access denied
6918
+ * Forbidden - subscription required or invalid
7473
6919
  */
7474
- 404: ErrorResponse;
7475
- };
7476
- export type DeleteClaudeCodeSessionError = DeleteClaudeCodeSessionErrors[keyof DeleteClaudeCodeSessionErrors];
7477
- export type DeleteClaudeCodeSessionResponses = {
7478
- /**
7479
- * Session deleted successfully
7480
- */
7481
- 204: void;
7482
- };
7483
- export type DeleteClaudeCodeSessionResponse = DeleteClaudeCodeSessionResponses[keyof DeleteClaudeCodeSessionResponses];
7484
- export type DeleteCursorIdeSessionData = {
7485
- body?: never;
7486
- path: {
7487
- /**
7488
- * Session ID
7489
- */
7490
- session_id: string;
7491
- };
7492
- query?: never;
7493
- url: '/api/v1/ai-tools/cursor-ide/sessions/{session_id}';
7494
- };
7495
- export type DeleteCursorIdeSessionErrors = {
7496
- /**
7497
- * Unauthorized
7498
- */
7499
- 401: ErrorResponse;
7500
- /**
7501
- * Session not found or access denied
7502
- */
7503
- 404: ErrorResponse;
7504
- };
7505
- export type DeleteCursorIdeSessionError = DeleteCursorIdeSessionErrors[keyof DeleteCursorIdeSessionErrors];
7506
- export type DeleteCursorIdeSessionResponses = {
7507
- /**
7508
- * Session deleted successfully
7509
- */
7510
- 204: void;
7511
- };
7512
- export type DeleteCursorIdeSessionResponse = DeleteCursorIdeSessionResponses[keyof DeleteCursorIdeSessionResponses];
7513
- export type GetResourceUsageData = {
7514
- body?: never;
7515
- path?: never;
7516
- query?: never;
7517
- url: '/api/v1/resource-usage';
7518
- };
7519
- export type GetResourceUsageErrors = {
7520
- /**
7521
- * Unauthorized - JWT token missing or invalid
7522
- */
7523
- 401: ErrorResponse;
7524
- /**
7525
- * Forbidden - subscription required or invalid
7526
- */
7527
- 403: ErrorResponse;
6920
+ 403: ErrorResponse;
7528
6921
  };
7529
6922
  export type GetResourceUsageError = GetResourceUsageErrors[keyof GetResourceUsageErrors];
7530
6923
  export type GetResourceUsageResponses = {
@@ -10216,438 +9609,6 @@ export type ListConversationExecutionsResponses = {
10216
9609
  200: ConversationExecutionsResponse;
10217
9610
  };
10218
9611
  export type ListConversationExecutionsResponse = ListConversationExecutionsResponses[keyof ListConversationExecutionsResponses];
10219
- export type ListClaudeCodeHooksData = {
10220
- body?: never;
10221
- path?: never;
10222
- query?: {
10223
- /**
10224
- * Page number (default 1; values < 1 fall back to 1)
10225
- */
10226
- page?: number;
10227
- /**
10228
- * Items per page (default 10, capped at 100)
10229
- */
10230
- limit?: number;
10231
- /**
10232
- * Filter by session ID
10233
- */
10234
- session_id?: string;
10235
- /**
10236
- * Filter by hook event name
10237
- */
10238
- hook_event_name?: string;
10239
- /**
10240
- * Filter by tool name
10241
- */
10242
- tool_name?: string;
10243
- };
10244
- url: '/api/v1/ai-tools/claude-code/hooks';
10245
- };
10246
- export type ListClaudeCodeHooksErrors = {
10247
- /**
10248
- * Unauthorized
10249
- */
10250
- 401: ErrorResponse;
10251
- /**
10252
- * Internal server error (legacy hook error shape)
10253
- */
10254
- 500: HookErrorResponse;
10255
- };
10256
- export type ListClaudeCodeHooksError = ListClaudeCodeHooksErrors[keyof ListClaudeCodeHooksErrors];
10257
- export type ListClaudeCodeHooksResponses = {
10258
- /**
10259
- * Hook payloads retrieved successfully
10260
- */
10261
- 200: HookListResponse;
10262
- };
10263
- export type ListClaudeCodeHooksResponse = ListClaudeCodeHooksResponses[keyof ListClaudeCodeHooksResponses];
10264
- export type ListClaudeCodeSessionsData = {
10265
- body?: never;
10266
- path?: never;
10267
- query?: {
10268
- /**
10269
- * Page number (default 1; values < 1 fall back to 1)
10270
- */
10271
- page?: number;
10272
- /**
10273
- * Items per page (default 10, capped at 100)
10274
- */
10275
- limit?: number;
10276
- };
10277
- url: '/api/v1/ai-tools/claude-code/sessions';
10278
- };
10279
- export type ListClaudeCodeSessionsErrors = {
10280
- /**
10281
- * Unauthorized
10282
- */
10283
- 401: ErrorResponse;
10284
- /**
10285
- * Internal server error (legacy hook error shape)
10286
- */
10287
- 500: HookErrorResponse;
10288
- };
10289
- export type ListClaudeCodeSessionsError = ListClaudeCodeSessionsErrors[keyof ListClaudeCodeSessionsErrors];
10290
- export type ListClaudeCodeSessionsResponses = {
10291
- /**
10292
- * Sessions retrieved successfully
10293
- */
10294
- 200: SessionsListResponse;
10295
- };
10296
- export type ListClaudeCodeSessionsResponse = ListClaudeCodeSessionsResponses[keyof ListClaudeCodeSessionsResponses];
10297
- export type GetClaudeCodeSessionCountsData = {
10298
- body?: never;
10299
- path?: never;
10300
- query?: {
10301
- /**
10302
- * Time range for the counts. Accepted values: `7d` (or `7`), `14d` (or `14`), `30d` (or `30`), `90d` (or `90`, `3m`). Unknown values fall back to `7d`.
10303
- */
10304
- range?: string;
10305
- };
10306
- url: '/api/v1/ai-tools/claude-code/session-counts';
10307
- };
10308
- export type GetClaudeCodeSessionCountsErrors = {
10309
- /**
10310
- * Unauthorized
10311
- */
10312
- 401: ErrorResponse;
10313
- /**
10314
- * Internal server error (legacy hook error shape)
10315
- */
10316
- 500: HookErrorResponse;
10317
- };
10318
- export type GetClaudeCodeSessionCountsError = GetClaudeCodeSessionCountsErrors[keyof GetClaudeCodeSessionCountsErrors];
10319
- export type GetClaudeCodeSessionCountsResponses = {
10320
- /**
10321
- * Session counts retrieved successfully
10322
- */
10323
- 200: SessionCountsApiResponse;
10324
- };
10325
- export type GetClaudeCodeSessionCountsResponse = GetClaudeCodeSessionCountsResponses[keyof GetClaudeCodeSessionCountsResponses];
10326
- export type GetClaudeCodeOverviewStatsData = {
10327
- body?: never;
10328
- path?: never;
10329
- query?: never;
10330
- url: '/api/v1/ai-tools/claude-code/overview-stats';
10331
- };
10332
- export type GetClaudeCodeOverviewStatsErrors = {
10333
- /**
10334
- * Unauthorized
10335
- */
10336
- 401: ErrorResponse;
10337
- /**
10338
- * Internal server error (plain-text body, not JSON)
10339
- */
10340
- 500: string;
10341
- };
10342
- export type GetClaudeCodeOverviewStatsError = GetClaudeCodeOverviewStatsErrors[keyof GetClaudeCodeOverviewStatsErrors];
10343
- export type GetClaudeCodeOverviewStatsResponses = {
10344
- /**
10345
- * Overview stats retrieved successfully
10346
- */
10347
- 200: OverviewStatsApiResponse;
10348
- };
10349
- export type GetClaudeCodeOverviewStatsResponse = GetClaudeCodeOverviewStatsResponses[keyof GetClaudeCodeOverviewStatsResponses];
10350
- export type ListClaudeCodeRecentActivitiesData = {
10351
- body?: never;
10352
- path?: never;
10353
- query?: {
10354
- /**
10355
- * Page number (default 1; values < 1 fall back to 1)
10356
- */
10357
- page?: number;
10358
- /**
10359
- * Items per page (default 20 for this endpoint, capped at 100)
10360
- */
10361
- limit?: number;
10362
- /**
10363
- * Filter by session ID
10364
- */
10365
- session_id?: string;
10366
- /**
10367
- * Filter by tool name
10368
- */
10369
- tool_name?: string;
10370
- /**
10371
- * Filter by hook event name
10372
- */
10373
- hook_event_name?: string;
10374
- /**
10375
- * Filter activities created on or after this date
10376
- */
10377
- date_from?: string;
10378
- /**
10379
- * Filter activities created on or before this date
10380
- */
10381
- date_to?: string;
10382
- };
10383
- url: '/api/v1/ai-tools/claude-code/recent-activities';
10384
- };
10385
- export type ListClaudeCodeRecentActivitiesErrors = {
10386
- /**
10387
- * Unauthorized
10388
- */
10389
- 401: ErrorResponse;
10390
- /**
10391
- * Internal server error (legacy hook error shape)
10392
- */
10393
- 500: HookErrorResponse;
10394
- };
10395
- export type ListClaudeCodeRecentActivitiesError = ListClaudeCodeRecentActivitiesErrors[keyof ListClaudeCodeRecentActivitiesErrors];
10396
- export type ListClaudeCodeRecentActivitiesResponses = {
10397
- /**
10398
- * Recent activities retrieved successfully
10399
- */
10400
- 200: RecentActivitiesApiResponse;
10401
- };
10402
- export type ListClaudeCodeRecentActivitiesResponse = ListClaudeCodeRecentActivitiesResponses[keyof ListClaudeCodeRecentActivitiesResponses];
10403
- export type ListCursorIdeHooksData = {
10404
- body?: never;
10405
- path?: never;
10406
- query?: {
10407
- /**
10408
- * Page number (default 1; values < 1 fall back to 1)
10409
- */
10410
- page?: number;
10411
- /**
10412
- * Items per page (default 10, capped at 100)
10413
- */
10414
- limit?: number;
10415
- /**
10416
- * Filter by session ID
10417
- */
10418
- session_id?: string;
10419
- /**
10420
- * Filter by hook event name
10421
- */
10422
- hook_event_name?: string;
10423
- /**
10424
- * Filter by tool name
10425
- */
10426
- tool_name?: string;
10427
- };
10428
- url: '/api/v1/ai-tools/cursor-ide/hooks';
10429
- };
10430
- export type ListCursorIdeHooksErrors = {
10431
- /**
10432
- * Unauthorized
10433
- */
10434
- 401: ErrorResponse;
10435
- /**
10436
- * Internal server error (legacy hook error shape)
10437
- */
10438
- 500: HookErrorResponse;
10439
- };
10440
- export type ListCursorIdeHooksError = ListCursorIdeHooksErrors[keyof ListCursorIdeHooksErrors];
10441
- export type ListCursorIdeHooksResponses = {
10442
- /**
10443
- * Hook payloads retrieved successfully
10444
- */
10445
- 200: CursorIdeHookListResponse;
10446
- };
10447
- export type ListCursorIdeHooksResponse = ListCursorIdeHooksResponses[keyof ListCursorIdeHooksResponses];
10448
- export type ListCursorIdeSessionsData = {
10449
- body?: never;
10450
- path?: never;
10451
- query?: {
10452
- /**
10453
- * Page number (default 1; values < 1 fall back to 1)
10454
- */
10455
- page?: number;
10456
- /**
10457
- * Items per page (default 10, capped at 100)
10458
- */
10459
- limit?: number;
10460
- };
10461
- url: '/api/v1/ai-tools/cursor-ide/sessions';
10462
- };
10463
- export type ListCursorIdeSessionsErrors = {
10464
- /**
10465
- * Unauthorized
10466
- */
10467
- 401: ErrorResponse;
10468
- /**
10469
- * Internal server error (legacy hook error shape)
10470
- */
10471
- 500: HookErrorResponse;
10472
- };
10473
- export type ListCursorIdeSessionsError = ListCursorIdeSessionsErrors[keyof ListCursorIdeSessionsErrors];
10474
- export type ListCursorIdeSessionsResponses = {
10475
- /**
10476
- * Sessions retrieved successfully
10477
- */
10478
- 200: CursorSessionsListResponse;
10479
- };
10480
- export type ListCursorIdeSessionsResponse = ListCursorIdeSessionsResponses[keyof ListCursorIdeSessionsResponses];
10481
- export type GetCursorIdeSessionCountsData = {
10482
- body?: never;
10483
- path?: never;
10484
- query?: {
10485
- /**
10486
- * Time range for the counts. Accepted values: `7d` (or `7`), `14d` (or `14`), `30d` (or `30`), `90d` (or `90`, `3m`). Unknown values fall back to `7d`.
10487
- */
10488
- range?: string;
10489
- };
10490
- url: '/api/v1/ai-tools/cursor-ide/session-counts';
10491
- };
10492
- export type GetCursorIdeSessionCountsErrors = {
10493
- /**
10494
- * Unauthorized
10495
- */
10496
- 401: ErrorResponse;
10497
- /**
10498
- * Internal server error (legacy hook error shape)
10499
- */
10500
- 500: HookErrorResponse;
10501
- };
10502
- export type GetCursorIdeSessionCountsError = GetCursorIdeSessionCountsErrors[keyof GetCursorIdeSessionCountsErrors];
10503
- export type GetCursorIdeSessionCountsResponses = {
10504
- /**
10505
- * Session counts retrieved successfully
10506
- */
10507
- 200: SessionCountsApiResponse;
10508
- };
10509
- export type GetCursorIdeSessionCountsResponse = GetCursorIdeSessionCountsResponses[keyof GetCursorIdeSessionCountsResponses];
10510
- export type GetCursorIdeOverviewStatsData = {
10511
- body?: never;
10512
- path?: never;
10513
- query?: never;
10514
- url: '/api/v1/ai-tools/cursor-ide/overview-stats';
10515
- };
10516
- export type GetCursorIdeOverviewStatsErrors = {
10517
- /**
10518
- * Unauthorized
10519
- */
10520
- 401: ErrorResponse;
10521
- /**
10522
- * Internal server error (plain-text body, not JSON)
10523
- */
10524
- 500: string;
10525
- };
10526
- export type GetCursorIdeOverviewStatsError = GetCursorIdeOverviewStatsErrors[keyof GetCursorIdeOverviewStatsErrors];
10527
- export type GetCursorIdeOverviewStatsResponses = {
10528
- /**
10529
- * Overview stats retrieved successfully
10530
- */
10531
- 200: CursorOverviewStatsApiResponse;
10532
- };
10533
- export type GetCursorIdeOverviewStatsResponse = GetCursorIdeOverviewStatsResponses[keyof GetCursorIdeOverviewStatsResponses];
10534
- export type ListCursorIdeRecentActivitiesData = {
10535
- body?: never;
10536
- path?: never;
10537
- query?: {
10538
- /**
10539
- * Page number (default 1; values < 1 fall back to 1)
10540
- */
10541
- page?: number;
10542
- /**
10543
- * Items per page (default 20 for this endpoint, capped at 100)
10544
- */
10545
- limit?: number;
10546
- /**
10547
- * Filter by session ID
10548
- */
10549
- session_id?: string;
10550
- /**
10551
- * Filter by tool name
10552
- */
10553
- tool_name?: string;
10554
- /**
10555
- * Filter by hook event name
10556
- */
10557
- hook_event_name?: string;
10558
- /**
10559
- * Filter activities created on or after this date
10560
- */
10561
- date_from?: string;
10562
- /**
10563
- * Filter activities created on or before this date
10564
- */
10565
- date_to?: string;
10566
- };
10567
- url: '/api/v1/ai-tools/cursor-ide/recent-activities';
10568
- };
10569
- export type ListCursorIdeRecentActivitiesErrors = {
10570
- /**
10571
- * Unauthorized
10572
- */
10573
- 401: ErrorResponse;
10574
- /**
10575
- * Internal server error (legacy hook error shape)
10576
- */
10577
- 500: HookErrorResponse;
10578
- };
10579
- export type ListCursorIdeRecentActivitiesError = ListCursorIdeRecentActivitiesErrors[keyof ListCursorIdeRecentActivitiesErrors];
10580
- export type ListCursorIdeRecentActivitiesResponses = {
10581
- /**
10582
- * Recent activities retrieved successfully
10583
- */
10584
- 200: CursorRecentActivitiesApiResponse;
10585
- };
10586
- export type ListCursorIdeRecentActivitiesResponse = ListCursorIdeRecentActivitiesResponses[keyof ListCursorIdeRecentActivitiesResponses];
10587
- export type IngestClaudeCodeHookData = {
10588
- body: IncomingHookPayload;
10589
- path?: never;
10590
- query?: never;
10591
- url: '/api/v1/claude-code/hooks';
10592
- };
10593
- export type IngestClaudeCodeHookErrors = {
10594
- /**
10595
- * Invalid JSON payload or missing required field (session_id, hook_event_name)
10596
- */
10597
- 400: HookErrorResponse;
10598
- /**
10599
- * Unauthorized
10600
- */
10601
- 401: ErrorResponse;
10602
- /**
10603
- * AI session or AI tools resource limit reached for the subscription plan (includes `details`)
10604
- */
10605
- 403: HookErrorResponse;
10606
- /**
10607
- * Internal server error (legacy hook error shape)
10608
- */
10609
- 500: HookErrorResponse;
10610
- };
10611
- export type IngestClaudeCodeHookError = IngestClaudeCodeHookErrors[keyof IngestClaudeCodeHookErrors];
10612
- export type IngestClaudeCodeHookResponses = {
10613
- /**
10614
- * Hook payload stored successfully
10615
- */
10616
- 201: HookCreatedResponse;
10617
- };
10618
- export type IngestClaudeCodeHookResponse = IngestClaudeCodeHookResponses[keyof IngestClaudeCodeHookResponses];
10619
- export type IngestCursorIdeHookData = {
10620
- body: IncomingCursorHookPayload;
10621
- path?: never;
10622
- query?: never;
10623
- url: '/api/v1/cursor-ide/hooks';
10624
- };
10625
- export type IngestCursorIdeHookErrors = {
10626
- /**
10627
- * Invalid JSON payload or missing required field (session_id/conversation_id, hook_event_name)
10628
- */
10629
- 400: HookErrorResponse;
10630
- /**
10631
- * Unauthorized
10632
- */
10633
- 401: ErrorResponse;
10634
- /**
10635
- * AI session or AI tools resource limit reached for the subscription plan (includes `details`)
10636
- */
10637
- 403: HookErrorResponse;
10638
- /**
10639
- * Internal server error (legacy hook error shape)
10640
- */
10641
- 500: HookErrorResponse;
10642
- };
10643
- export type IngestCursorIdeHookError = IngestCursorIdeHookErrors[keyof IngestCursorIdeHookErrors];
10644
- export type IngestCursorIdeHookResponses = {
10645
- /**
10646
- * Hook payload stored successfully
10647
- */
10648
- 201: HookCreatedResponse;
10649
- };
10650
- export type IngestCursorIdeHookResponse = IngestCursorIdeHookResponses[keyof IngestCursorIdeHookResponses];
10651
9612
  export type ListTeamsData = {
10652
9613
  body?: never;
10653
9614
  path?: never;