@vibexp/api-client 0.16.0 → 0.18.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.
@@ -127,6 +127,22 @@ export type User = {
127
127
  updated_at: string;
128
128
  version: number;
129
129
  };
130
+ /**
131
+ * The authenticated user as returned by GET /api/v1/auth/me — the full User
132
+ * object plus session-relative flags. `is_instance_admin` lets the SPA gate the
133
+ * Admin Portal menu and /admin routes; it is UI convenience only, as every
134
+ * /api/v1/admin* call is authorized server-side regardless.
135
+ *
136
+ */
137
+ export type CurrentUser = User & {
138
+ /**
139
+ * Whether the authenticated user's email is in the configured
140
+ * auth.instance_admins list (matched case-insensitively). False when the
141
+ * list is empty (feature dormant).
142
+ *
143
+ */
144
+ is_instance_admin: boolean;
145
+ };
130
146
  /**
131
147
  * Response body returned by GET /api/v1/auth/login containing the authorization URL
132
148
  */
@@ -2469,6 +2485,10 @@ export type InvitationResponse = {
2469
2485
  created_at?: string;
2470
2486
  invited_by?: InviterInfo;
2471
2487
  };
2488
+ /**
2489
+ * Bare list of team invitations returned by the list endpoint.
2490
+ */
2491
+ export type InvitationResponseList = Array<InvitationResponse>;
2472
2492
  /**
2473
2493
  * Wrapper response for the get-invitation-by-token endpoint
2474
2494
  */
@@ -3372,6 +3392,145 @@ export type TypeListResponse = {
3372
3392
  */
3373
3393
  total_count: number;
3374
3394
  };
3395
+ /**
3396
+ * A team-visible comment on a resource.
3397
+ */
3398
+ export type Comment = {
3399
+ /**
3400
+ * Unique comment identifier
3401
+ */
3402
+ id: string;
3403
+ /**
3404
+ * Owning team
3405
+ */
3406
+ team_id: string;
3407
+ /**
3408
+ * Type of the commented resource (artifact, memory, prompt, or blueprint)
3409
+ */
3410
+ resource_type: string;
3411
+ /**
3412
+ * Identifier of the commented resource
3413
+ */
3414
+ resource_id: string;
3415
+ /**
3416
+ * Author of the comment
3417
+ */
3418
+ user_id: string;
3419
+ /**
3420
+ * Comment body (markdown, 1–10,000 characters)
3421
+ */
3422
+ content: string;
3423
+ /**
3424
+ * When the comment was created
3425
+ */
3426
+ created_at: string;
3427
+ /**
3428
+ * When the comment was last edited (equals created_at if never edited)
3429
+ */
3430
+ updated_at: string;
3431
+ };
3432
+ /**
3433
+ * Request body for creating a comment on a resource.
3434
+ */
3435
+ export type CreateCommentRequest = {
3436
+ /**
3437
+ * Type of the resource being commented on (artifact, memory, prompt, or blueprint)
3438
+ */
3439
+ resource_type: string;
3440
+ /**
3441
+ * Identifier of the resource being commented on
3442
+ */
3443
+ resource_id: string;
3444
+ /**
3445
+ * Comment body (markdown, 1–10,000 characters)
3446
+ */
3447
+ content: string;
3448
+ };
3449
+ /**
3450
+ * Request body for editing a comment's content.
3451
+ */
3452
+ export type UpdateCommentRequest = {
3453
+ /**
3454
+ * New comment body (markdown, 1–10,000 characters)
3455
+ */
3456
+ content: string;
3457
+ };
3458
+ /**
3459
+ * A page of a resource's comments, newest first.
3460
+ */
3461
+ export type CommentListResponse = {
3462
+ /**
3463
+ * Comments on the resource, newest first
3464
+ */
3465
+ comments: Array<Comment>;
3466
+ /**
3467
+ * Total number of comments on the resource
3468
+ */
3469
+ total_count: number;
3470
+ /**
3471
+ * Current page number
3472
+ */
3473
+ page: number;
3474
+ /**
3475
+ * Number of items per page
3476
+ */
3477
+ per_page: number;
3478
+ /**
3479
+ * Total number of pages
3480
+ */
3481
+ total_pages: number;
3482
+ };
3483
+ /**
3484
+ * A recent comment for the homepage activity card: the comment's latest state plus its resource's resolved title and link fields. No comment body snippet. project_id is present for every resource type; slug is present for artifact/blueprint/prompt and absent for memory.
3485
+ *
3486
+ */
3487
+ export type RecentComment = {
3488
+ /**
3489
+ * Author of the comment
3490
+ */
3491
+ user_id: string;
3492
+ /**
3493
+ * When the comment was created
3494
+ */
3495
+ created_at: string;
3496
+ /**
3497
+ * When the comment was last edited (updated_at > created_at means edited)
3498
+ */
3499
+ updated_at: string;
3500
+ /**
3501
+ * Type of the commented resource
3502
+ */
3503
+ resource_type: string;
3504
+ /**
3505
+ * Identifier of the commented resource
3506
+ */
3507
+ resource_id: string;
3508
+ /**
3509
+ * Resolved display title of the resource
3510
+ */
3511
+ resource_title: string;
3512
+ /**
3513
+ * Project the resource belongs to (for building the detail link)
3514
+ */
3515
+ project_id?: string;
3516
+ /**
3517
+ * Resource slug for the detail link (absent for memories)
3518
+ */
3519
+ slug?: string;
3520
+ };
3521
+ /**
3522
+ * The team's most recent comment activity, latest-activity first.
3523
+ */
3524
+ export type RecentCommentListResponse = {
3525
+ /**
3526
+ * Recent comments across the team, most-recently-active first
3527
+ */
3528
+ comments: Array<RecentComment>;
3529
+ /**
3530
+ * Number of entries in the list
3531
+ */
3532
+ total_count: number;
3533
+ };
3375
3534
  export type ProjectResponse = Project & {
3376
3535
  /**
3377
3536
  * Whether the project's git URL matches a repository accessible via the team's GitHub App installation
@@ -3994,7 +4153,7 @@ export type GetMeResponses = {
3994
4153
  /**
3995
4154
  * User information retrieved successfully
3996
4155
  */
3997
- 200: User;
4156
+ 200: CurrentUser;
3998
4157
  };
3999
4158
  export type GetMeResponse = GetMeResponses[keyof GetMeResponses];
4000
4159
  export type ListApiKeysData = {
@@ -9597,7 +9756,7 @@ export type ListTeamInvitationsResponses = {
9597
9756
  /**
9598
9757
  * Invitations retrieved successfully
9599
9758
  */
9600
- 200: Array<InvitationResponse>;
9759
+ 200: InvitationResponseList;
9601
9760
  };
9602
9761
  export type ListTeamInvitationsResponse = ListTeamInvitationsResponses[keyof ListTeamInvitationsResponses];
9603
9762
  export type SendTeamInvitationsData = {
@@ -9646,7 +9805,7 @@ export type SendTeamInvitationsResponses = {
9646
9805
  /**
9647
9806
  * Invitations created successfully (the `token`, `team_name` and `invited_by` fields are not populated on this response)
9648
9807
  */
9649
- 201: Array<InvitationResponse>;
9808
+ 201: InvitationResponseList;
9650
9809
  };
9651
9810
  export type SendTeamInvitationsResponse = SendTeamInvitationsResponses[keyof SendTeamInvitationsResponses];
9652
9811
  export type RevokeTeamInvitationData = {
@@ -10263,6 +10422,233 @@ export type DeleteTypeResponses = {
10263
10422
  204: void;
10264
10423
  };
10265
10424
  export type DeleteTypeResponse = DeleteTypeResponses[keyof DeleteTypeResponses];
10425
+ export type ListCommentsData = {
10426
+ body?: never;
10427
+ path: {
10428
+ /**
10429
+ * Team identifier
10430
+ */
10431
+ team_id: string;
10432
+ };
10433
+ query: {
10434
+ /**
10435
+ * Type of the commented resource (artifact, memory, prompt, or blueprint)
10436
+ */
10437
+ resource_type: string;
10438
+ /**
10439
+ * Identifier of the commented resource
10440
+ */
10441
+ resource_id: string;
10442
+ /**
10443
+ * Page number (1-based)
10444
+ */
10445
+ page?: number;
10446
+ /**
10447
+ * Items per page
10448
+ */
10449
+ limit?: number;
10450
+ };
10451
+ url: '/api/v1/{team_id}/comments';
10452
+ };
10453
+ export type ListCommentsErrors = {
10454
+ /**
10455
+ * Invalid resource_type or query parameters
10456
+ */
10457
+ 400: ErrorResponse;
10458
+ /**
10459
+ * Unauthorized
10460
+ */
10461
+ 401: ErrorResponse;
10462
+ /**
10463
+ * Caller is not a member of the team
10464
+ */
10465
+ 403: ErrorResponse;
10466
+ /**
10467
+ * Failed to list comments
10468
+ */
10469
+ 500: ErrorResponse;
10470
+ };
10471
+ export type ListCommentsError = ListCommentsErrors[keyof ListCommentsErrors];
10472
+ export type ListCommentsResponses = {
10473
+ /**
10474
+ * Comments retrieved successfully
10475
+ */
10476
+ 200: CommentListResponse;
10477
+ };
10478
+ export type ListCommentsResponse = ListCommentsResponses[keyof ListCommentsResponses];
10479
+ export type CreateCommentData = {
10480
+ body: CreateCommentRequest;
10481
+ path: {
10482
+ /**
10483
+ * Team identifier
10484
+ */
10485
+ team_id: string;
10486
+ };
10487
+ query?: never;
10488
+ url: '/api/v1/{team_id}/comments';
10489
+ };
10490
+ export type CreateCommentErrors = {
10491
+ /**
10492
+ * Invalid resource_type or content
10493
+ */
10494
+ 400: ErrorResponse;
10495
+ /**
10496
+ * Unauthorized
10497
+ */
10498
+ 401: ErrorResponse;
10499
+ /**
10500
+ * Caller may not comment in the team
10501
+ */
10502
+ 403: ErrorResponse;
10503
+ /**
10504
+ * Target resource not found in the team
10505
+ */
10506
+ 404: ErrorResponse;
10507
+ /**
10508
+ * Failed to create comment
10509
+ */
10510
+ 500: ErrorResponse;
10511
+ };
10512
+ export type CreateCommentError = CreateCommentErrors[keyof CreateCommentErrors];
10513
+ export type CreateCommentResponses = {
10514
+ /**
10515
+ * Comment created successfully
10516
+ */
10517
+ 201: Comment;
10518
+ };
10519
+ export type CreateCommentResponse = CreateCommentResponses[keyof CreateCommentResponses];
10520
+ export type ListRecentCommentsData = {
10521
+ body?: never;
10522
+ path: {
10523
+ /**
10524
+ * Team identifier
10525
+ */
10526
+ team_id: string;
10527
+ };
10528
+ query?: {
10529
+ /**
10530
+ * Maximum number of entries to return
10531
+ */
10532
+ limit?: number;
10533
+ };
10534
+ url: '/api/v1/{team_id}/comments/recent';
10535
+ };
10536
+ export type ListRecentCommentsErrors = {
10537
+ /**
10538
+ * Invalid query parameters
10539
+ */
10540
+ 400: ErrorResponse;
10541
+ /**
10542
+ * Unauthorized
10543
+ */
10544
+ 401: ErrorResponse;
10545
+ /**
10546
+ * Caller is not a member of the team
10547
+ */
10548
+ 403: ErrorResponse;
10549
+ /**
10550
+ * Failed to list recent comments
10551
+ */
10552
+ 500: ErrorResponse;
10553
+ };
10554
+ export type ListRecentCommentsError = ListRecentCommentsErrors[keyof ListRecentCommentsErrors];
10555
+ export type ListRecentCommentsResponses = {
10556
+ /**
10557
+ * Recent comments retrieved successfully
10558
+ */
10559
+ 200: RecentCommentListResponse;
10560
+ };
10561
+ export type ListRecentCommentsResponse = ListRecentCommentsResponses[keyof ListRecentCommentsResponses];
10562
+ export type DeleteCommentData = {
10563
+ body?: never;
10564
+ path: {
10565
+ /**
10566
+ * Team identifier
10567
+ */
10568
+ team_id: string;
10569
+ /**
10570
+ * Comment identifier
10571
+ */
10572
+ comment_id: string;
10573
+ };
10574
+ query?: never;
10575
+ url: '/api/v1/{team_id}/comments/{comment_id}';
10576
+ };
10577
+ export type DeleteCommentErrors = {
10578
+ /**
10579
+ * comment_id is not a valid UUID
10580
+ */
10581
+ 400: ErrorResponse;
10582
+ /**
10583
+ * Unauthorized
10584
+ */
10585
+ 401: ErrorResponse;
10586
+ /**
10587
+ * Caller may not delete this comment
10588
+ */
10589
+ 403: ErrorResponse;
10590
+ /**
10591
+ * Comment not found in the team
10592
+ */
10593
+ 404: ErrorResponse;
10594
+ /**
10595
+ * Failed to delete comment
10596
+ */
10597
+ 500: ErrorResponse;
10598
+ };
10599
+ export type DeleteCommentError = DeleteCommentErrors[keyof DeleteCommentErrors];
10600
+ export type DeleteCommentResponses = {
10601
+ /**
10602
+ * Comment deleted (no content)
10603
+ */
10604
+ 204: void;
10605
+ };
10606
+ export type DeleteCommentResponse = DeleteCommentResponses[keyof DeleteCommentResponses];
10607
+ export type UpdateCommentData = {
10608
+ body: UpdateCommentRequest;
10609
+ path: {
10610
+ /**
10611
+ * Team identifier
10612
+ */
10613
+ team_id: string;
10614
+ /**
10615
+ * Comment identifier
10616
+ */
10617
+ comment_id: string;
10618
+ };
10619
+ query?: never;
10620
+ url: '/api/v1/{team_id}/comments/{comment_id}';
10621
+ };
10622
+ export type UpdateCommentErrors = {
10623
+ /**
10624
+ * Invalid content
10625
+ */
10626
+ 400: ErrorResponse;
10627
+ /**
10628
+ * Unauthorized
10629
+ */
10630
+ 401: ErrorResponse;
10631
+ /**
10632
+ * Caller is not the comment's author
10633
+ */
10634
+ 403: ErrorResponse;
10635
+ /**
10636
+ * Comment not found in the team
10637
+ */
10638
+ 404: ErrorResponse;
10639
+ /**
10640
+ * Failed to update comment
10641
+ */
10642
+ 500: ErrorResponse;
10643
+ };
10644
+ export type UpdateCommentError = UpdateCommentErrors[keyof UpdateCommentErrors];
10645
+ export type UpdateCommentResponses = {
10646
+ /**
10647
+ * Comment updated successfully
10648
+ */
10649
+ 200: Comment;
10650
+ };
10651
+ export type UpdateCommentResponse = UpdateCommentResponses[keyof UpdateCommentResponses];
10266
10652
  export type ListEmbeddingProvidersData = {
10267
10653
  body?: never;
10268
10654
  path: {