@vibexp/api-client 0.102.0 → 0.104.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.
@@ -363,6 +363,10 @@ export type Prompt = {
363
363
  */
364
364
  project: ProjectSummary | null;
365
365
  freshness?: ResourceFreshnessState;
366
+ /**
367
+ * The lock held on this resource (epic #1285), or null when it is not locked. Present on every read, list and write response. Always null on a prompt read through a share link: lock state is internal to the team.
368
+ */
369
+ lock: ResourceLock | null;
366
370
  };
367
371
  export type CreatePromptRequest = {
368
372
  name: string;
@@ -1593,6 +1597,10 @@ export type Artifact = {
1593
1597
  */
1594
1598
  project: ProjectSummary | null;
1595
1599
  freshness?: ResourceFreshnessState;
1600
+ /**
1601
+ * The lock held on this resource (epic #1285), or null when it is not locked. Present on every read, list and write response.
1602
+ */
1603
+ lock: ResourceLock | null;
1596
1604
  };
1597
1605
  export type CreateArtifactRequest = {
1598
1606
  /**
@@ -2055,6 +2063,73 @@ export type ProjectSummary = {
2055
2063
  */
2056
2064
  slug: string;
2057
2065
  };
2066
+ /**
2067
+ * A user named on a resource lock or a lock history event.
2068
+ */
2069
+ export type ResourceLockActor = {
2070
+ /**
2071
+ * ID of the user.
2072
+ */
2073
+ user_id: string;
2074
+ /**
2075
+ * The user's display name.
2076
+ */
2077
+ display_name: string;
2078
+ };
2079
+ /**
2080
+ * The lock held on a prompt, blueprint or artifact. A resource carries one while it is locked and `null` when it is not.
2081
+ */
2082
+ export type ResourceLock = {
2083
+ /**
2084
+ * The team member holding the lock.
2085
+ */
2086
+ locked_by: ResourceLockActor;
2087
+ /**
2088
+ * Why the resource was locked, as given by the locker.
2089
+ */
2090
+ comment: string;
2091
+ /**
2092
+ * When the lock was taken.
2093
+ */
2094
+ locked_at: string;
2095
+ };
2096
+ export type LockResourceRequest = {
2097
+ /**
2098
+ * Why the resource is being locked. Required: surrounding whitespace is trimmed, and a comment that is then empty or longer than 500 characters is rejected with 400.
2099
+ */
2100
+ comment: string;
2101
+ };
2102
+ /**
2103
+ * One entry of a resource's append-only lock history.
2104
+ */
2105
+ export type ResourceLockEvent = {
2106
+ /**
2107
+ * ID of the history event.
2108
+ */
2109
+ id: string;
2110
+ /**
2111
+ * Whether the resource was locked or unlocked.
2112
+ */
2113
+ action: 'lock' | 'unlock';
2114
+ /**
2115
+ * Who locked or unlocked the resource. Null once that user's account has been deleted.
2116
+ */
2117
+ actor: ResourceLockActor | null;
2118
+ /**
2119
+ * The lock comment for a `lock` event; null for an `unlock`.
2120
+ */
2121
+ comment: string | null;
2122
+ /**
2123
+ * When the event happened.
2124
+ */
2125
+ created_at: string;
2126
+ };
2127
+ export type ResourceLockHistoryResponse = {
2128
+ /**
2129
+ * Lock and unlock events, newest first. Not paginated: at most the 100 most recent events are returned.
2130
+ */
2131
+ events: Array<ResourceLockEvent>;
2132
+ };
2058
2133
  export type CreateProjectRequest = {
2059
2134
  /**
2060
2135
  * Human-readable name of the project
@@ -2565,6 +2640,10 @@ export type Blueprint = {
2565
2640
  */
2566
2641
  project: ProjectSummary | null;
2567
2642
  freshness?: ResourceFreshnessState;
2643
+ /**
2644
+ * The lock held on this resource (epic #1285), or null when it is not locked. Present on every read, list and write response.
2645
+ */
2646
+ lock: ResourceLock | null;
2568
2647
  };
2569
2648
  /**
2570
2649
  * Read-only import provenance; present only for imported blueprints.
@@ -3328,9 +3407,9 @@ export type Team = {
3328
3407
  /**
3329
3408
  * 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.
3330
3409
  * 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:
3331
- * * `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).
3410
+ * * `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. * `resource.unlock.any` — unlock a resource locked by someone else. * `feed.delete.any` — delete another member's feed post or reply (moderation).
3332
3411
  */
3333
- 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'>;
3412
+ 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' | 'resource.unlock.any' | 'feed.delete.any'>;
3334
3413
  /**
3335
3414
  * Number of members in this team. Populated only on list responses; 0 on create and single-team reads.
3336
3415
  */
@@ -7902,6 +7981,10 @@ export type ListArtifactsData = {
7902
7981
  team_id: string;
7903
7982
  };
7904
7983
  query?: {
7984
+ /**
7985
+ * Filter by lock state (epic #1285): `true` returns only locked resources, `false` only unlocked ones. Omit for no lock filtering. Returns 400 for a value that is not a boolean.
7986
+ */
7987
+ locked?: boolean;
7905
7988
  /**
7906
7989
  * Filter to resources currently flagged stale by the team's freshness rules (epic #726). Omit for no freshness filtering. Returns 400 for any other value — a silently ignored filter would return the full list, which looks like a legitimate answer.
7907
7990
  */
@@ -8050,6 +8133,10 @@ export type ListArtifactsByProjectData = {
8050
8133
  project_id: string;
8051
8134
  };
8052
8135
  query?: {
8136
+ /**
8137
+ * Filter by lock state (epic #1285): `true` returns only locked resources, `false` only unlocked ones. Omit for no lock filtering. Returns 400 for a value that is not a boolean.
8138
+ */
8139
+ locked?: boolean;
8053
8140
  /**
8054
8141
  * Filter to resources currently flagged stale by the team's freshness rules (epic #726). Omit for no freshness filtering. Returns 400 for any other value — a silently ignored filter would return the full list, which looks like a legitimate answer.
8055
8142
  */
@@ -8246,6 +8333,161 @@ export type UpdateArtifactResponses = {
8246
8333
  200: Artifact;
8247
8334
  };
8248
8335
  export type UpdateArtifactResponse = UpdateArtifactResponses[keyof UpdateArtifactResponses];
8336
+ export type UnlockArtifactData = {
8337
+ body?: never;
8338
+ path: {
8339
+ /**
8340
+ * Team identifier
8341
+ */
8342
+ team_id: string;
8343
+ /**
8344
+ * UUID of the project
8345
+ */
8346
+ project_id: string;
8347
+ /**
8348
+ * Artifact slug
8349
+ */
8350
+ slug: string;
8351
+ };
8352
+ query?: never;
8353
+ url: '/api/v1/{team_id}/artifacts/{project_id}/{slug}/lock';
8354
+ };
8355
+ export type UnlockArtifactErrors = {
8356
+ /**
8357
+ * Bad request: a malformed path parameter
8358
+ */
8359
+ 400: ErrorResponse;
8360
+ /**
8361
+ * Unauthorized
8362
+ */
8363
+ 401: ErrorResponse;
8364
+ /**
8365
+ * Forbidden: not a member of the team, or the lock was placed by someone else and the caller's role does not hold `resource.unlock.any`
8366
+ */
8367
+ 403: ErrorResponse;
8368
+ /**
8369
+ * Artifact not found
8370
+ */
8371
+ 404: ErrorResponse;
8372
+ /**
8373
+ * The artifact is not locked (code `RESOURCE_NOT_LOCKED`)
8374
+ */
8375
+ 409: ErrorResponse;
8376
+ /**
8377
+ * Internal server error
8378
+ */
8379
+ 500: ErrorResponse;
8380
+ };
8381
+ export type UnlockArtifactError = UnlockArtifactErrors[keyof UnlockArtifactErrors];
8382
+ export type UnlockArtifactResponses = {
8383
+ /**
8384
+ * Artifact unlocked; the updated artifact is returned
8385
+ */
8386
+ 200: Artifact;
8387
+ };
8388
+ export type UnlockArtifactResponse = UnlockArtifactResponses[keyof UnlockArtifactResponses];
8389
+ export type LockArtifactData = {
8390
+ body: LockResourceRequest;
8391
+ path: {
8392
+ /**
8393
+ * Team identifier
8394
+ */
8395
+ team_id: string;
8396
+ /**
8397
+ * UUID of the project
8398
+ */
8399
+ project_id: string;
8400
+ /**
8401
+ * Artifact slug
8402
+ */
8403
+ slug: string;
8404
+ };
8405
+ query?: never;
8406
+ url: '/api/v1/{team_id}/artifacts/{project_id}/{slug}/lock';
8407
+ };
8408
+ export type LockArtifactErrors = {
8409
+ /**
8410
+ * Bad request: a malformed path parameter or request body, or a missing, blank or too long comment
8411
+ */
8412
+ 400: ErrorResponse;
8413
+ /**
8414
+ * Unauthorized
8415
+ */
8416
+ 401: ErrorResponse;
8417
+ /**
8418
+ * Forbidden: not a member of the team
8419
+ */
8420
+ 403: ErrorResponse;
8421
+ /**
8422
+ * Artifact not found
8423
+ */
8424
+ 404: ErrorResponse;
8425
+ /**
8426
+ * The artifact is already locked (code `RESOURCE_LOCKED`)
8427
+ */
8428
+ 409: ErrorResponse;
8429
+ /**
8430
+ * Internal server error
8431
+ */
8432
+ 500: ErrorResponse;
8433
+ };
8434
+ export type LockArtifactError = LockArtifactErrors[keyof LockArtifactErrors];
8435
+ export type LockArtifactResponses = {
8436
+ /**
8437
+ * Artifact locked; the updated artifact is returned
8438
+ */
8439
+ 200: Artifact;
8440
+ };
8441
+ export type LockArtifactResponse = LockArtifactResponses[keyof LockArtifactResponses];
8442
+ export type GetArtifactLockHistoryData = {
8443
+ body?: never;
8444
+ path: {
8445
+ /**
8446
+ * Team identifier
8447
+ */
8448
+ team_id: string;
8449
+ /**
8450
+ * UUID of the project
8451
+ */
8452
+ project_id: string;
8453
+ /**
8454
+ * Artifact slug
8455
+ */
8456
+ slug: string;
8457
+ };
8458
+ query?: never;
8459
+ url: '/api/v1/{team_id}/artifacts/{project_id}/{slug}/lock/history';
8460
+ };
8461
+ export type GetArtifactLockHistoryErrors = {
8462
+ /**
8463
+ * Bad request: a malformed path parameter
8464
+ */
8465
+ 400: ErrorResponse;
8466
+ /**
8467
+ * Unauthorized
8468
+ */
8469
+ 401: ErrorResponse;
8470
+ /**
8471
+ * Forbidden: not a member of the team
8472
+ */
8473
+ 403: ErrorResponse;
8474
+ /**
8475
+ * Artifact not found
8476
+ */
8477
+ 404: ErrorResponse;
8478
+ /**
8479
+ * Internal server error
8480
+ */
8481
+ 500: ErrorResponse;
8482
+ };
8483
+ export type GetArtifactLockHistoryError = GetArtifactLockHistoryErrors[keyof GetArtifactLockHistoryErrors];
8484
+ export type GetArtifactLockHistoryResponses = {
8485
+ /**
8486
+ * Lock history retrieved successfully
8487
+ */
8488
+ 200: ResourceLockHistoryResponse;
8489
+ };
8490
+ export type GetArtifactLockHistoryResponse = GetArtifactLockHistoryResponses[keyof GetArtifactLockHistoryResponses];
8249
8491
  export type ListAttachmentsData = {
8250
8492
  body?: never;
8251
8493
  path: {
@@ -9305,6 +9547,10 @@ export type ListSpecLibrariesData = {
9305
9547
  team_id: string;
9306
9548
  };
9307
9549
  query?: {
9550
+ /**
9551
+ * Filter by lock state (epic #1285): `true` returns only locked resources, `false` only unlocked ones. Omit for no lock filtering. Returns 400 for a value that is not a boolean.
9552
+ */
9553
+ locked?: boolean;
9308
9554
  /**
9309
9555
  * Filter to resources currently flagged stale by the team's freshness rules (epic #726). Omit for no freshness filtering. Returns 400 for any other value — a silently ignored filter would return the full list, which looks like a legitimate answer.
9310
9556
  */
@@ -9461,6 +9707,10 @@ export type ListSpecLibrariesByProjectData = {
9461
9707
  project_id: string;
9462
9708
  };
9463
9709
  query?: {
9710
+ /**
9711
+ * Filter by lock state (epic #1285): `true` returns only locked resources, `false` only unlocked ones. Omit for no lock filtering. Returns 400 for a value that is not a boolean.
9712
+ */
9713
+ locked?: boolean;
9464
9714
  /**
9465
9715
  * Filter to resources currently flagged stale by the team's freshness rules (epic #726). Omit for no freshness filtering. Returns 400 for any other value — a silently ignored filter would return the full list, which looks like a legitimate answer.
9466
9716
  */
@@ -9673,6 +9923,161 @@ export type UpdateBlueprintResponses = {
9673
9923
  200: Blueprint;
9674
9924
  };
9675
9925
  export type UpdateBlueprintResponse = UpdateBlueprintResponses[keyof UpdateBlueprintResponses];
9926
+ export type UnlockBlueprintData = {
9927
+ body?: never;
9928
+ path: {
9929
+ /**
9930
+ * Team identifier
9931
+ */
9932
+ team_id: string;
9933
+ /**
9934
+ * Project identifier (URL-encoded)
9935
+ */
9936
+ project_id: string;
9937
+ /**
9938
+ * Blueprint slug (URL-encoded)
9939
+ */
9940
+ slug: string;
9941
+ };
9942
+ query?: never;
9943
+ url: '/api/v1/{team_id}/blueprints/{project_id}/{slug}/lock';
9944
+ };
9945
+ export type UnlockBlueprintErrors = {
9946
+ /**
9947
+ * Bad request: a malformed path parameter
9948
+ */
9949
+ 400: ErrorResponse;
9950
+ /**
9951
+ * Unauthorized
9952
+ */
9953
+ 401: ErrorResponse;
9954
+ /**
9955
+ * Forbidden: not a member of the team, or the lock was placed by someone else and the caller's role does not hold `resource.unlock.any`
9956
+ */
9957
+ 403: ErrorResponse;
9958
+ /**
9959
+ * Blueprint not found
9960
+ */
9961
+ 404: ErrorResponse;
9962
+ /**
9963
+ * The blueprint is not locked (code `RESOURCE_NOT_LOCKED`)
9964
+ */
9965
+ 409: ErrorResponse;
9966
+ /**
9967
+ * Internal server error
9968
+ */
9969
+ 500: ErrorResponse;
9970
+ };
9971
+ export type UnlockBlueprintError = UnlockBlueprintErrors[keyof UnlockBlueprintErrors];
9972
+ export type UnlockBlueprintResponses = {
9973
+ /**
9974
+ * Blueprint unlocked; the updated blueprint is returned
9975
+ */
9976
+ 200: BlueprintDetail;
9977
+ };
9978
+ export type UnlockBlueprintResponse = UnlockBlueprintResponses[keyof UnlockBlueprintResponses];
9979
+ export type LockBlueprintData = {
9980
+ body: LockResourceRequest;
9981
+ path: {
9982
+ /**
9983
+ * Team identifier
9984
+ */
9985
+ team_id: string;
9986
+ /**
9987
+ * Project identifier (URL-encoded)
9988
+ */
9989
+ project_id: string;
9990
+ /**
9991
+ * Blueprint slug (URL-encoded)
9992
+ */
9993
+ slug: string;
9994
+ };
9995
+ query?: never;
9996
+ url: '/api/v1/{team_id}/blueprints/{project_id}/{slug}/lock';
9997
+ };
9998
+ export type LockBlueprintErrors = {
9999
+ /**
10000
+ * Bad request: a malformed path parameter or request body, or a missing, blank or too long comment
10001
+ */
10002
+ 400: ErrorResponse;
10003
+ /**
10004
+ * Unauthorized
10005
+ */
10006
+ 401: ErrorResponse;
10007
+ /**
10008
+ * Forbidden: not a member of the team
10009
+ */
10010
+ 403: ErrorResponse;
10011
+ /**
10012
+ * Blueprint not found
10013
+ */
10014
+ 404: ErrorResponse;
10015
+ /**
10016
+ * The blueprint is already locked (code `RESOURCE_LOCKED`)
10017
+ */
10018
+ 409: ErrorResponse;
10019
+ /**
10020
+ * Internal server error
10021
+ */
10022
+ 500: ErrorResponse;
10023
+ };
10024
+ export type LockBlueprintError = LockBlueprintErrors[keyof LockBlueprintErrors];
10025
+ export type LockBlueprintResponses = {
10026
+ /**
10027
+ * Blueprint locked; the updated blueprint is returned
10028
+ */
10029
+ 200: BlueprintDetail;
10030
+ };
10031
+ export type LockBlueprintResponse = LockBlueprintResponses[keyof LockBlueprintResponses];
10032
+ export type GetBlueprintLockHistoryData = {
10033
+ body?: never;
10034
+ path: {
10035
+ /**
10036
+ * Team identifier
10037
+ */
10038
+ team_id: string;
10039
+ /**
10040
+ * Project identifier (URL-encoded)
10041
+ */
10042
+ project_id: string;
10043
+ /**
10044
+ * Blueprint slug (URL-encoded)
10045
+ */
10046
+ slug: string;
10047
+ };
10048
+ query?: never;
10049
+ url: '/api/v1/{team_id}/blueprints/{project_id}/{slug}/lock/history';
10050
+ };
10051
+ export type GetBlueprintLockHistoryErrors = {
10052
+ /**
10053
+ * Bad request: a malformed path parameter
10054
+ */
10055
+ 400: ErrorResponse;
10056
+ /**
10057
+ * Unauthorized
10058
+ */
10059
+ 401: ErrorResponse;
10060
+ /**
10061
+ * Forbidden: not a member of the team
10062
+ */
10063
+ 403: ErrorResponse;
10064
+ /**
10065
+ * Blueprint not found
10066
+ */
10067
+ 404: ErrorResponse;
10068
+ /**
10069
+ * Internal server error
10070
+ */
10071
+ 500: ErrorResponse;
10072
+ };
10073
+ export type GetBlueprintLockHistoryError = GetBlueprintLockHistoryErrors[keyof GetBlueprintLockHistoryErrors];
10074
+ export type GetBlueprintLockHistoryResponses = {
10075
+ /**
10076
+ * Lock history retrieved successfully
10077
+ */
10078
+ 200: ResourceLockHistoryResponse;
10079
+ };
10080
+ export type GetBlueprintLockHistoryResponse = GetBlueprintLockHistoryResponses[keyof GetBlueprintLockHistoryResponses];
9676
10081
  export type ListBlueprintVersionsData = {
9677
10082
  body?: never;
9678
10083
  path: {
@@ -9821,6 +10226,10 @@ export type ListPromptsData = {
9821
10226
  team_id: string;
9822
10227
  };
9823
10228
  query?: {
10229
+ /**
10230
+ * Filter by lock state (epic #1285): `true` returns only locked resources, `false` only unlocked ones. Omit for no lock filtering. Returns 400 for a value that is not a boolean.
10231
+ */
10232
+ locked?: boolean;
9824
10233
  /**
9825
10234
  * Filter to resources currently flagged stale by the team's freshness rules (epic #726). Omit for no freshness filtering. Returns 400 for any other value — a silently ignored filter would return the full list, which looks like a legitimate answer.
9826
10235
  */
@@ -10075,6 +10484,149 @@ export type UpdatePromptResponses = {
10075
10484
  200: Prompt;
10076
10485
  };
10077
10486
  export type UpdatePromptResponse = UpdatePromptResponses[keyof UpdatePromptResponses];
10487
+ export type UnlockPromptData = {
10488
+ body?: never;
10489
+ path: {
10490
+ /**
10491
+ * Team identifier
10492
+ */
10493
+ team_id: string;
10494
+ /**
10495
+ * Prompt slug identifier
10496
+ */
10497
+ slug: string;
10498
+ };
10499
+ query?: never;
10500
+ url: '/api/v1/{team_id}/prompts/{slug}/lock';
10501
+ };
10502
+ export type UnlockPromptErrors = {
10503
+ /**
10504
+ * Bad request: a malformed path parameter
10505
+ */
10506
+ 400: ErrorResponse;
10507
+ /**
10508
+ * Unauthorized
10509
+ */
10510
+ 401: ErrorResponse;
10511
+ /**
10512
+ * Forbidden: not a member of the team, or the lock was placed by someone else and the caller's role does not hold `resource.unlock.any`
10513
+ */
10514
+ 403: ErrorResponse;
10515
+ /**
10516
+ * Prompt not found
10517
+ */
10518
+ 404: ErrorResponse;
10519
+ /**
10520
+ * The prompt is not locked (code `RESOURCE_NOT_LOCKED`)
10521
+ */
10522
+ 409: ErrorResponse;
10523
+ /**
10524
+ * Internal server error
10525
+ */
10526
+ 500: ErrorResponse;
10527
+ };
10528
+ export type UnlockPromptError = UnlockPromptErrors[keyof UnlockPromptErrors];
10529
+ export type UnlockPromptResponses = {
10530
+ /**
10531
+ * Prompt unlocked; the updated prompt is returned
10532
+ */
10533
+ 200: Prompt;
10534
+ };
10535
+ export type UnlockPromptResponse = UnlockPromptResponses[keyof UnlockPromptResponses];
10536
+ export type LockPromptData = {
10537
+ body: LockResourceRequest;
10538
+ path: {
10539
+ /**
10540
+ * Team identifier
10541
+ */
10542
+ team_id: string;
10543
+ /**
10544
+ * Prompt slug identifier
10545
+ */
10546
+ slug: string;
10547
+ };
10548
+ query?: never;
10549
+ url: '/api/v1/{team_id}/prompts/{slug}/lock';
10550
+ };
10551
+ export type LockPromptErrors = {
10552
+ /**
10553
+ * Bad request: a malformed path parameter or request body, or a missing, blank or too long comment
10554
+ */
10555
+ 400: ErrorResponse;
10556
+ /**
10557
+ * Unauthorized
10558
+ */
10559
+ 401: ErrorResponse;
10560
+ /**
10561
+ * Forbidden: not a member of the team
10562
+ */
10563
+ 403: ErrorResponse;
10564
+ /**
10565
+ * Prompt not found
10566
+ */
10567
+ 404: ErrorResponse;
10568
+ /**
10569
+ * The prompt is already locked (code `RESOURCE_LOCKED`)
10570
+ */
10571
+ 409: ErrorResponse;
10572
+ /**
10573
+ * Internal server error
10574
+ */
10575
+ 500: ErrorResponse;
10576
+ };
10577
+ export type LockPromptError = LockPromptErrors[keyof LockPromptErrors];
10578
+ export type LockPromptResponses = {
10579
+ /**
10580
+ * Prompt locked; the updated prompt is returned
10581
+ */
10582
+ 200: Prompt;
10583
+ };
10584
+ export type LockPromptResponse = LockPromptResponses[keyof LockPromptResponses];
10585
+ export type GetPromptLockHistoryData = {
10586
+ body?: never;
10587
+ path: {
10588
+ /**
10589
+ * Team identifier
10590
+ */
10591
+ team_id: string;
10592
+ /**
10593
+ * Prompt slug identifier
10594
+ */
10595
+ slug: string;
10596
+ };
10597
+ query?: never;
10598
+ url: '/api/v1/{team_id}/prompts/{slug}/lock/history';
10599
+ };
10600
+ export type GetPromptLockHistoryErrors = {
10601
+ /**
10602
+ * Bad request: a malformed path parameter
10603
+ */
10604
+ 400: ErrorResponse;
10605
+ /**
10606
+ * Unauthorized
10607
+ */
10608
+ 401: ErrorResponse;
10609
+ /**
10610
+ * Forbidden: not a member of the team
10611
+ */
10612
+ 403: ErrorResponse;
10613
+ /**
10614
+ * Prompt not found
10615
+ */
10616
+ 404: ErrorResponse;
10617
+ /**
10618
+ * Internal server error
10619
+ */
10620
+ 500: ErrorResponse;
10621
+ };
10622
+ export type GetPromptLockHistoryError = GetPromptLockHistoryErrors[keyof GetPromptLockHistoryErrors];
10623
+ export type GetPromptLockHistoryResponses = {
10624
+ /**
10625
+ * Lock history retrieved successfully
10626
+ */
10627
+ 200: ResourceLockHistoryResponse;
10628
+ };
10629
+ export type GetPromptLockHistoryResponse = GetPromptLockHistoryResponses[keyof GetPromptLockHistoryResponses];
10078
10630
  export type GetPromptPlaceholdersData = {
10079
10631
  body?: never;
10080
10632
  path: {