@vibexp/api-client 0.100.0 → 0.101.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/schema.d.ts CHANGED
@@ -2538,6 +2538,54 @@ export interface paths {
2538
2538
  patch?: never;
2539
2539
  trace?: never;
2540
2540
  };
2541
+ "/api/v1/{team_id}/statuses": {
2542
+ parameters: {
2543
+ query?: never;
2544
+ header?: never;
2545
+ path?: never;
2546
+ cookie?: never;
2547
+ };
2548
+ /**
2549
+ * List the statuses of a resource type
2550
+ * @description Returns every status the team may give a resource of `resource_type`: the built-in system statuses first, then the team's custom statuses. Each carries `usage_count`, the number of the team's resources currently using it. Any team member may call this.
2551
+ */
2552
+ get: operations["listStatuses"];
2553
+ put?: never;
2554
+ /**
2555
+ * Create a custom status
2556
+ * @description Creates a status the team can give its resources of `resource_type`. Requires the `team.settings.update` permission (team owners and admins). A team may have at most 20 custom statuses per resource type.
2557
+ */
2558
+ post: operations["createStatus"];
2559
+ delete?: never;
2560
+ options?: never;
2561
+ head?: never;
2562
+ patch?: never;
2563
+ trace?: never;
2564
+ };
2565
+ "/api/v1/{team_id}/statuses/{id}": {
2566
+ parameters: {
2567
+ query?: never;
2568
+ header?: never;
2569
+ path?: never;
2570
+ cookie?: never;
2571
+ };
2572
+ get?: never;
2573
+ put?: never;
2574
+ post?: never;
2575
+ /**
2576
+ * Delete a custom status
2577
+ * @description Deletes a custom status. Every resource of the team that carries it is moved to the resource type's default system status (`draft` for prompts, `active` otherwise) in the same transaction, and the response reports how many were moved. Moving a resource this way does not change its `updated_at`. Requires the `team.settings.update` permission (team owners and admins).
2578
+ */
2579
+ delete: operations["deleteStatus"];
2580
+ options?: never;
2581
+ head?: never;
2582
+ /**
2583
+ * Rename a custom status
2584
+ * @description Changes the display name of a custom status. The slug never changes: resources store it. Requires the `team.settings.update` permission (team owners and admins).
2585
+ */
2586
+ patch: operations["updateStatus"];
2587
+ trace?: never;
2588
+ };
2541
2589
  "/api/v1/admin/stats": {
2542
2590
  parameters: {
2543
2591
  query?: never;
@@ -2809,7 +2857,8 @@ export interface paths {
2809
2857
  };
2810
2858
  /**
2811
2859
  * List a team's settings audit log
2812
- * @description Returns one page of the team's settings-copy audit log, newest first, with
2860
+ * @description Returns one page of the team's settings audit log (cross-team copies and
2861
+ * custom status changes), newest first, with
2813
2862
  * actor and source-team names resolved. Each entry's `detail` is filtered to
2814
2863
  * a per-surface key allowlist, so no credential can surface here.
2815
2864
  * Read-only. Instance-admin only; non-admin and unauthenticated requests
@@ -4468,7 +4517,7 @@ export interface paths {
4468
4517
  };
4469
4518
  /**
4470
4519
  * List the team's settings audit log
4471
- * @description Every configuration copied into this team from another team, newest first and paginated, with the actor and source-team names resolved server-side. Requires the team.settings.update permission (owner or admin). The list is empty, never null, past the last page.
4520
+ * @description Every configuration copied into this team from another team, and every custom status created, renamed or deleted in it, newest first and paginated, with the actor and source-team names resolved server-side. Requires the team.settings.update permission (owner or admin). The list is empty, never null, past the last page.
4472
4521
  */
4473
4522
  get: operations["listTeamSettingsAudit"];
4474
4523
  put?: never;
@@ -10494,6 +10543,99 @@ export interface components {
10494
10543
  */
10495
10544
  skipped_count: number;
10496
10545
  };
10546
+ /**
10547
+ * @description A resource type that carries a status. Singular, as in the comment and relation APIs.
10548
+ * @example artifact
10549
+ * @enum {string}
10550
+ */
10551
+ StatusResourceType: "prompt" | "artifact" | "blueprint" | "memory";
10552
+ /** @description One status a team may give a resource of `resource_type`. A system status (`is_system: true`) is built in, identical for every team and cannot be renamed or deleted; it has no `id` and no timestamps. A custom status belongs to the team. */
10553
+ StatusDefinition: {
10554
+ /**
10555
+ * Format: uuid
10556
+ * @description Identifier of a custom status. Absent for a system status.
10557
+ * @example 550e8400-e29b-41d4-a716-446655440000
10558
+ */
10559
+ id?: string;
10560
+ resource_type: components["schemas"]["StatusResourceType"];
10561
+ /**
10562
+ * @description The value stored on the resource. Unique per team and resource type, and immutable once created.
10563
+ * @example in-review
10564
+ */
10565
+ slug: string;
10566
+ /**
10567
+ * @description Human-readable display name
10568
+ * @example In review
10569
+ */
10570
+ name: string;
10571
+ /**
10572
+ * @description True for a built-in status, which cannot be renamed or deleted
10573
+ * @example false
10574
+ */
10575
+ is_system: boolean;
10576
+ /**
10577
+ * @description Whether a resource carrying this status counts as live, usable content. False only for the built-in work-in-progress and retired statuses (`draft`, `archived`, `expired`); always true for a custom status.
10578
+ * @example true
10579
+ */
10580
+ is_live: boolean;
10581
+ /**
10582
+ * @description How many of the team's resources of this type currently carry the status. For a custom status this is the number of resources a delete would move to the default status.
10583
+ * @example 12
10584
+ */
10585
+ usage_count: number;
10586
+ /**
10587
+ * Format: date-time
10588
+ * @description When the custom status was created. Absent for a system status.
10589
+ * @example 2026-06-15T09:00:00Z
10590
+ */
10591
+ created_at?: string;
10592
+ /**
10593
+ * Format: date-time
10594
+ * @description When the custom status was last renamed. Absent for a system status.
10595
+ * @example 2026-06-15T09:00:00Z
10596
+ */
10597
+ updated_at?: string;
10598
+ };
10599
+ /** @description The system statuses of a resource type followed by the team's custom ones */
10600
+ StatusListResponse: {
10601
+ /** @description System statuses first, in their built-in order, then custom statuses by name */
10602
+ statuses: components["schemas"]["StatusDefinition"][];
10603
+ };
10604
+ /** @description Request body for creating a custom status */
10605
+ CreateStatusRequest: {
10606
+ resource_type: components["schemas"]["StatusResourceType"];
10607
+ /**
10608
+ * @description Lowercase letters and numbers in hyphen-separated groups, at most 50 characters. It cannot be one of the built-in statuses (`active`, `draft`, `archived`, `published`, `expired`), whichever resource type the status is for, and it cannot be changed later.
10609
+ * @example in-review
10610
+ */
10611
+ slug: string;
10612
+ /**
10613
+ * @description Display name. Surrounding whitespace is trimmed, and what remains must be 1 to 50 characters.
10614
+ * @example In review
10615
+ */
10616
+ name: string;
10617
+ };
10618
+ /** @description Request body for renaming a custom status. Only the display name can change; any other field, including `slug`, is rejected. */
10619
+ UpdateStatusRequest: {
10620
+ /**
10621
+ * @description New display name. Surrounding whitespace is trimmed, and what remains must be 1 to 50 characters.
10622
+ * @example Under review
10623
+ */
10624
+ name: string;
10625
+ };
10626
+ /** @description The outcome of deleting a custom status */
10627
+ DeleteStatusResponse: {
10628
+ /**
10629
+ * @description How many resources carried the status and were moved to `reassigned_to`
10630
+ * @example 12
10631
+ */
10632
+ reassigned_count: number;
10633
+ /**
10634
+ * @description The system status those resources now carry: `draft` for prompts, `active` for every other resource type.
10635
+ * @example active
10636
+ */
10637
+ reassigned_to: string;
10638
+ };
10497
10639
  /** @description A team-visible comment on a resource. */
10498
10640
  Comment: {
10499
10641
  /**
@@ -11422,12 +11564,12 @@ export interface components {
11422
11564
  max_output_tokens: number;
11423
11565
  };
11424
11566
  /**
11425
- * @description Which settings surface was copied between teams.
11567
+ * @description Which settings surface the entry is about. `embedding_provider`, `model_provider` and `custom_types` record a copy from another team; `custom_statuses` records a custom status being created, renamed or deleted in this team.
11426
11568
  * @example model_provider
11427
11569
  * @enum {string}
11428
11570
  */
11429
- TeamSettingsAuditSurface: "embedding_provider" | "model_provider" | "custom_types";
11430
- /** @description One recorded settings copy into this team: which surface arrived, who brought it, and where it came from. */
11571
+ TeamSettingsAuditSurface: "embedding_provider" | "model_provider" | "custom_types" | "custom_statuses";
11572
+ /** @description One recorded change to this team's settings: a configuration copied in from another team (which surface arrived, who brought it, and where it came from), or a custom status created, renamed or deleted here. */
11431
11573
  TeamSettingsAuditEntry: {
11432
11574
  /**
11433
11575
  * Format: uuid
@@ -11437,7 +11579,7 @@ export interface components {
11437
11579
  surface: components["schemas"]["TeamSettingsAuditSurface"];
11438
11580
  /**
11439
11581
  * Format: uuid
11440
- * @description Who performed the copy. `null` once that account is deleted — the entry outlives the actor on purpose, so that deletion cannot erase the record of what the account did.
11582
+ * @description Who made the change. `null` once that account is deleted — the entry outlives the actor on purpose, so that deletion cannot erase the record of what the account did.
11441
11583
  */
11442
11584
  actor_user_id: string | null;
11443
11585
  /**
@@ -11447,26 +11589,26 @@ export interface components {
11447
11589
  actor_name: string | null;
11448
11590
  /**
11449
11591
  * Format: uuid
11450
- * @description The team the configuration was copied FROM.
11592
+ * @description The team the configuration was copied FROM. `null` for a `custom_statuses` entry, which has no source team.
11451
11593
  */
11452
11594
  source_team_id: string | null;
11453
11595
  /**
11454
- * @description The source team's name, resolved server-side. `null` when that team has since been deleted — the id above is then the only remaining handle on it, and is deliberately still present rather than blanked.
11596
+ * @description The source team's name, resolved server-side. `null` when that team has since been deleted — the id above is then the only remaining handle on it, and is deliberately still present rather than blanked. Also `null` for a `custom_statuses` entry.
11455
11597
  * @example Platform Team
11456
11598
  */
11457
11599
  source_team_name: string | null;
11458
11600
  /**
11459
11601
  * Format: uuid
11460
- * @description The resource that was copied. `null` for a `custom_types` copy, where one action copies a whole set and the individual ids live in `detail`.
11602
+ * @description The resource that was copied. `null` for a `custom_types` copy, where one action copies a whole set and the individual ids live in `detail`, and for a `custom_statuses` entry, which copies nothing.
11461
11603
  */
11462
11604
  source_resource_id: string | null;
11463
11605
  /**
11464
11606
  * Format: uuid
11465
- * @description The resource created in this team. `null` for a `custom_types` copy, for the same reason as `source_resource_id`.
11607
+ * @description The resource created in this team. `null` for a `custom_types` copy, for the same reason as `source_resource_id`. For a `custom_statuses` entry it is the id of a newly created status, and `null` for a rename or a delete.
11466
11608
  */
11467
11609
  created_resource_id: string | null;
11468
11610
  /**
11469
- * @description Surface-specific facts snapshotted at write time — resource names, and for a provider copy whether it carried a credential and whether it became the team's active provider. Always an object, never null.
11611
+ * @description Surface-specific facts snapshotted at write time — resource names, and for a provider copy whether it carried a credential and whether it became the team's active provider. A `custom_statuses` entry carries `action` (`created`, `renamed` or `deleted`), `resource_type`, `slug` and `name`, plus `previous_name` for a rename and `reassigned_count` and `reassigned_to` for a delete. Always an object, never null.
11470
11612
  * @example {
11471
11613
  * "source_name": "OpenAI (Platform)",
11472
11614
  * "created_name": "OpenAI (Platform)",
@@ -11478,7 +11620,7 @@ export interface components {
11478
11620
  };
11479
11621
  /**
11480
11622
  * Format: date-time
11481
- * @description When the copy was recorded.
11623
+ * @description When the change was recorded.
11482
11624
  */
11483
11625
  created_at: string;
11484
11626
  };
@@ -12646,12 +12788,12 @@ export interface components {
12646
12788
  /** @description System types first, then custom types, each by name. */
12647
12789
  types: components["schemas"]["AdminArtifactType"][];
12648
12790
  };
12649
- /** @description One recorded settings copy into the team. */
12791
+ /** @description One recorded change to the team's settings: a configuration copied in from another team, or (`custom_statuses`) a custom status created, renamed or deleted. */
12650
12792
  AdminTeamSettingsAuditEntry: {
12651
12793
  /** Format: uuid */
12652
12794
  id: string;
12653
12795
  /** @enum {string} */
12654
- surface: "embedding_provider" | "model_provider" | "custom_types";
12796
+ surface: "embedding_provider" | "model_provider" | "custom_types" | "custom_statuses";
12655
12797
  /** Format: uuid */
12656
12798
  actor_user_id: string | null;
12657
12799
  actor_name: string | null;
@@ -12667,8 +12809,9 @@ export interface components {
12667
12809
  * (model_provider: source_name, created_name, provider_type, model,
12668
12810
  * has_api_key; embedding_provider: the same plus becomes_active,
12669
12811
  * displaced_model, displaced_embedded_resources; custom_types: added_ids,
12670
- * added_slugs, skipped_slugs). Any other stored key is dropped. Always an
12671
- * object, never null.
12812
+ * added_slugs, skipped_slugs; custom_statuses: action, resource_type,
12813
+ * slug, name, previous_name, reassigned_count, reassigned_to). Any other
12814
+ * stored key is dropped. Always an object, never null.
12672
12815
  */
12673
12816
  detail: {
12674
12817
  [key: string]: unknown;
@@ -23260,6 +23403,284 @@ export interface operations {
23260
23403
  };
23261
23404
  };
23262
23405
  };
23406
+ listStatuses: {
23407
+ parameters: {
23408
+ query: {
23409
+ /** @description Resource type whose statuses to list */
23410
+ resource_type: components["schemas"]["StatusResourceType"];
23411
+ };
23412
+ header?: never;
23413
+ path: {
23414
+ /** @description Team identifier */
23415
+ team_id: string;
23416
+ };
23417
+ cookie?: never;
23418
+ };
23419
+ requestBody?: never;
23420
+ responses: {
23421
+ /** @description Statuses retrieved successfully */
23422
+ 200: {
23423
+ headers: {
23424
+ [name: string]: unknown;
23425
+ };
23426
+ content: {
23427
+ "application/json": components["schemas"]["StatusListResponse"];
23428
+ };
23429
+ };
23430
+ /** @description Missing or unsupported resource_type, or malformed team id */
23431
+ 400: {
23432
+ headers: {
23433
+ [name: string]: unknown;
23434
+ };
23435
+ content: {
23436
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23437
+ };
23438
+ };
23439
+ /** @description Unauthorized */
23440
+ 401: {
23441
+ headers: {
23442
+ [name: string]: unknown;
23443
+ };
23444
+ content: {
23445
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23446
+ };
23447
+ };
23448
+ /** @description Caller is not a member of the team */
23449
+ 403: {
23450
+ headers: {
23451
+ [name: string]: unknown;
23452
+ };
23453
+ content: {
23454
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23455
+ };
23456
+ };
23457
+ /** @description Failed to list statuses */
23458
+ 500: {
23459
+ headers: {
23460
+ [name: string]: unknown;
23461
+ };
23462
+ content: {
23463
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23464
+ };
23465
+ };
23466
+ };
23467
+ };
23468
+ createStatus: {
23469
+ parameters: {
23470
+ query?: never;
23471
+ header?: never;
23472
+ path: {
23473
+ /** @description Team identifier */
23474
+ team_id: string;
23475
+ };
23476
+ cookie?: never;
23477
+ };
23478
+ requestBody: {
23479
+ content: {
23480
+ "application/json": components["schemas"]["CreateStatusRequest"];
23481
+ };
23482
+ };
23483
+ responses: {
23484
+ /** @description Status created successfully */
23485
+ 201: {
23486
+ headers: {
23487
+ [name: string]: unknown;
23488
+ };
23489
+ content: {
23490
+ "application/json": components["schemas"]["StatusDefinition"];
23491
+ };
23492
+ };
23493
+ /** @description Unknown body field, unsupported resource_type, invalid slug or name, or the team already has 20 custom statuses for this resource type */
23494
+ 400: {
23495
+ headers: {
23496
+ [name: string]: unknown;
23497
+ };
23498
+ content: {
23499
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23500
+ };
23501
+ };
23502
+ /** @description Unauthorized */
23503
+ 401: {
23504
+ headers: {
23505
+ [name: string]: unknown;
23506
+ };
23507
+ content: {
23508
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23509
+ };
23510
+ };
23511
+ /** @description Caller is not a member of the team, or is a member whose role may not change team settings */
23512
+ 403: {
23513
+ headers: {
23514
+ [name: string]: unknown;
23515
+ };
23516
+ content: {
23517
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23518
+ };
23519
+ };
23520
+ /** @description The slug is a built-in status, or the team already has a status with this slug for this resource type */
23521
+ 409: {
23522
+ headers: {
23523
+ [name: string]: unknown;
23524
+ };
23525
+ content: {
23526
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23527
+ };
23528
+ };
23529
+ /** @description Failed to create status */
23530
+ 500: {
23531
+ headers: {
23532
+ [name: string]: unknown;
23533
+ };
23534
+ content: {
23535
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23536
+ };
23537
+ };
23538
+ };
23539
+ };
23540
+ deleteStatus: {
23541
+ parameters: {
23542
+ query?: never;
23543
+ header?: never;
23544
+ path: {
23545
+ /** @description Team identifier */
23546
+ team_id: string;
23547
+ /** @description Custom status identifier */
23548
+ id: string;
23549
+ };
23550
+ cookie?: never;
23551
+ };
23552
+ requestBody?: never;
23553
+ responses: {
23554
+ /** @description Status deleted and its resources reassigned */
23555
+ 200: {
23556
+ headers: {
23557
+ [name: string]: unknown;
23558
+ };
23559
+ content: {
23560
+ "application/json": components["schemas"]["DeleteStatusResponse"];
23561
+ };
23562
+ };
23563
+ /** @description Status id or team id is not a valid UUID */
23564
+ 400: {
23565
+ headers: {
23566
+ [name: string]: unknown;
23567
+ };
23568
+ content: {
23569
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23570
+ };
23571
+ };
23572
+ /** @description Unauthorized */
23573
+ 401: {
23574
+ headers: {
23575
+ [name: string]: unknown;
23576
+ };
23577
+ content: {
23578
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23579
+ };
23580
+ };
23581
+ /** @description Caller is not a member of the team, or is a member whose role may not change team settings */
23582
+ 403: {
23583
+ headers: {
23584
+ [name: string]: unknown;
23585
+ };
23586
+ content: {
23587
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23588
+ };
23589
+ };
23590
+ /** @description No custom status with this id exists in the team */
23591
+ 404: {
23592
+ headers: {
23593
+ [name: string]: unknown;
23594
+ };
23595
+ content: {
23596
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23597
+ };
23598
+ };
23599
+ /** @description Failed to delete status */
23600
+ 500: {
23601
+ headers: {
23602
+ [name: string]: unknown;
23603
+ };
23604
+ content: {
23605
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23606
+ };
23607
+ };
23608
+ };
23609
+ };
23610
+ updateStatus: {
23611
+ parameters: {
23612
+ query?: never;
23613
+ header?: never;
23614
+ path: {
23615
+ /** @description Team identifier */
23616
+ team_id: string;
23617
+ /** @description Custom status identifier */
23618
+ id: string;
23619
+ };
23620
+ cookie?: never;
23621
+ };
23622
+ requestBody: {
23623
+ content: {
23624
+ "application/json": components["schemas"]["UpdateStatusRequest"];
23625
+ };
23626
+ };
23627
+ responses: {
23628
+ /** @description Status renamed successfully */
23629
+ 200: {
23630
+ headers: {
23631
+ [name: string]: unknown;
23632
+ };
23633
+ content: {
23634
+ "application/json": components["schemas"]["StatusDefinition"];
23635
+ };
23636
+ };
23637
+ /** @description Unknown body field (including slug), invalid name, or malformed id */
23638
+ 400: {
23639
+ headers: {
23640
+ [name: string]: unknown;
23641
+ };
23642
+ content: {
23643
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23644
+ };
23645
+ };
23646
+ /** @description Unauthorized */
23647
+ 401: {
23648
+ headers: {
23649
+ [name: string]: unknown;
23650
+ };
23651
+ content: {
23652
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23653
+ };
23654
+ };
23655
+ /** @description Caller is not a member of the team, or is a member whose role may not change team settings */
23656
+ 403: {
23657
+ headers: {
23658
+ [name: string]: unknown;
23659
+ };
23660
+ content: {
23661
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23662
+ };
23663
+ };
23664
+ /** @description No custom status with this id exists in the team */
23665
+ 404: {
23666
+ headers: {
23667
+ [name: string]: unknown;
23668
+ };
23669
+ content: {
23670
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23671
+ };
23672
+ };
23673
+ /** @description Failed to rename status */
23674
+ 500: {
23675
+ headers: {
23676
+ [name: string]: unknown;
23677
+ };
23678
+ content: {
23679
+ "application/problem+json": components["schemas"]["ErrorResponse"];
23680
+ };
23681
+ };
23682
+ };
23683
+ };
23263
23684
  getAdminStats: {
23264
23685
  parameters: {
23265
23686
  query?: never;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibexp/api-client",
3
- "version": "0.100.0",
3
+ "version": "0.101.0",
4
4
  "description": "Typed VibeXP API client generated from the OpenAPI spec (openapi-fetch main entrypoint, axios SDK at ./axios)",
5
5
  "license": "MIT",
6
6
  "repository": {