@vibexp/api-client 0.81.0 → 0.83.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
@@ -2602,8 +2602,10 @@ export interface paths {
2602
2602
  };
2603
2603
  /**
2604
2604
  * List instance teams
2605
- * @description Returns a paginated, instance-wide listing of teams with each team's owner
2606
- * and member count. Supports case-insensitive search, typed filters, and
2605
+ * @description Returns a paginated, instance-wide listing of teams with each team's owner,
2606
+ * member/owner/admin/project counts, per-type resource counts and which
2607
+ * settings the team has configured itself (instance-level fallback never
2608
+ * counts as configured). Supports case-insensitive search, typed filters, and
2607
2609
  * allowlisted sorting; filters combine with AND and the pagination envelope
2608
2610
  * reflects the filtered set. Instance-admin only; non-admin and
2609
2611
  * unauthenticated requests receive 404.
@@ -2899,6 +2901,67 @@ export interface paths {
2899
2901
  patch?: never;
2900
2902
  trace?: never;
2901
2903
  };
2904
+ "/api/v1/admin/users/{id}/resource-access-metrics": {
2905
+ parameters: {
2906
+ query?: never;
2907
+ header?: never;
2908
+ path?: never;
2909
+ cookie?: never;
2910
+ };
2911
+ /**
2912
+ * Get a user's resource access series by source
2913
+ * @description Returns how many times the user accessed (opened) resources per bucket and
2914
+ * per access source (web, cli, mcp, api), across every team. Omitting the
2915
+ * parameters yields the last 30 days at `day` granularity, and the range
2916
+ * rules match getAdminDashboardTimeseries. Every bucket is present with an
2917
+ * explicit 0 for each source that appears in the range.
2918
+ *
2919
+ * Access events are TTL-pruned (`retention.access_event_days`), so a range
2920
+ * reaching back before `earliest_retained_at` reads as zeros there.
2921
+ *
2922
+ * Instance-admin only; non-admin and unauthenticated requests receive 404, as
2923
+ * does an unknown user id.
2924
+ */
2925
+ get: operations["getAdminUserResourceAccessMetrics"];
2926
+ put?: never;
2927
+ post?: never;
2928
+ delete?: never;
2929
+ options?: never;
2930
+ head?: never;
2931
+ patch?: never;
2932
+ trace?: never;
2933
+ };
2934
+ "/api/v1/admin/users/{id}/top-accessed-resources": {
2935
+ parameters: {
2936
+ query?: never;
2937
+ header?: never;
2938
+ path?: never;
2939
+ cookie?: never;
2940
+ };
2941
+ /**
2942
+ * Get the resources a user accessed most
2943
+ * @description Returns the resources the user accessed most often in a time range, across
2944
+ * every team, ranked by access count (ties broken by resource id). Rows are
2945
+ * OPAQUE: resource type, team, project and the first 8 characters of the
2946
+ * resource id — never a title, slug or content. A resource deleted since it
2947
+ * was accessed is still listed, with `resource_deleted: true` and no project.
2948
+ *
2949
+ * `from` defaults to 30 days before `to`, and `to` to now. Access events are
2950
+ * TTL-pruned (`retention.access_event_days`), so accesses before
2951
+ * `earliest_retained_at` are not counted.
2952
+ *
2953
+ * Instance-admin only; non-admin and unauthenticated requests receive 404, as
2954
+ * does an unknown user id.
2955
+ */
2956
+ get: operations["getAdminUserTopAccessedResources"];
2957
+ put?: never;
2958
+ post?: never;
2959
+ delete?: never;
2960
+ options?: never;
2961
+ head?: never;
2962
+ patch?: never;
2963
+ trace?: never;
2964
+ };
2902
2965
  "/api/v1/admin/users/{id}/notification-preferences": {
2903
2966
  parameters: {
2904
2967
  query?: never;
@@ -10433,10 +10496,11 @@ export interface components {
10433
10496
  last_resource_created_at?: string | null;
10434
10497
  };
10435
10498
  /**
10436
- * @description How many resources of each type a user authored, counted by the author
10437
- * column of each table (feeds by creator, feed items by poster). Every row
10438
- * counts regardless of its status or archive state. `total` is the sum of the
10439
- * nine types.
10499
+ * @description How many resources of each type belong to the listed row. On a user row
10500
+ * these are the resources the user authored, counted by the author column of
10501
+ * each table (feeds by creator, feed items by poster); on a team row they are
10502
+ * the resources in the team, counted by team_id. Every row counts regardless
10503
+ * of its status or archive state. `total` is the sum of the nine types.
10440
10504
  */
10441
10505
  AdminResourceCounts: {
10442
10506
  /**
@@ -10609,9 +10673,50 @@ export interface components {
10609
10673
  * @example 8
10610
10674
  */
10611
10675
  member_count: number;
10676
+ /**
10677
+ * Format: int64
10678
+ * @description Number of members holding the owner role. Always 1 by application invariant; any other value signals integrity drift.
10679
+ * @example 1
10680
+ */
10681
+ owner_count: number;
10682
+ /**
10683
+ * Format: int64
10684
+ * @description Number of members holding the admin role.
10685
+ * @example 2
10686
+ */
10687
+ admin_count: number;
10688
+ /**
10689
+ * Format: int64
10690
+ * @description Number of projects in the team.
10691
+ * @example 3
10692
+ */
10693
+ project_count: number;
10694
+ resource_counts: components["schemas"]["AdminResourceCounts"];
10695
+ configuration: components["schemas"]["AdminTeamConfiguration"];
10612
10696
  /** Format: date-time */
10613
10697
  created_at: string;
10614
10698
  };
10699
+ /**
10700
+ * @description Which settings a team has configured itself. Each flag reflects the team's
10701
+ * OWN rows only; instance-level fallback configuration (config.yaml) never
10702
+ * counts as configured.
10703
+ */
10704
+ AdminTeamConfiguration: {
10705
+ /** @description The team has at least one embedding provider of its own. */
10706
+ embedding_configured: boolean;
10707
+ /** @description The team has at least one LLM model provider of its own. */
10708
+ llm_configured: boolean;
10709
+ /** @description The team has its own AI summary settings with summaries enabled. */
10710
+ ai_summary_enabled: boolean;
10711
+ /** @description The team has its own email provider, regardless of its delivery health. */
10712
+ email_configured: boolean;
10713
+ /** @description The team has its own GitHub App configuration or at least one GitHub App installation (suspended installations included). */
10714
+ github_configured: boolean;
10715
+ /** @description The team has its own search settings. */
10716
+ search_settings_customized: boolean;
10717
+ /** @description The team has at least one enabled freshness rule. */
10718
+ freshness_enabled: boolean;
10719
+ };
10615
10720
  /** @description A page of the instance-wide team listing, newest first. */
10616
10721
  AdminTeamListResponse: {
10617
10722
  /** @description Teams on this page, newest first. */
@@ -11208,6 +11313,90 @@ export interface components {
11208
11313
  /** @description True when the user has no stored preferences and the defaults are shown. */
11209
11314
  is_default: boolean;
11210
11315
  };
11316
+ /**
11317
+ * @description Resource accesses by the user per bucket and source, across every team
11318
+ * (GET /api/v1/admin/users/{id}/resource-access-metrics). Every bucket in the
11319
+ * range is present with an explicit 0 for each source that appears.
11320
+ */
11321
+ AdminUserAccessMetrics: {
11322
+ /**
11323
+ * Format: date-time
11324
+ * @description Inclusive start of the range actually used, snapped DOWN to the start of
11325
+ * its bucket (same rule as AdminTimeseriesResponse.from).
11326
+ */
11327
+ from: string;
11328
+ /**
11329
+ * Format: date-time
11330
+ * @description Exclusive end of the range actually used (after defaulting); not snapped.
11331
+ */
11332
+ to: string;
11333
+ /**
11334
+ * @description Bucket size actually used.
11335
+ * @enum {string}
11336
+ */
11337
+ granularity: "day" | "week" | "month";
11338
+ /** @description One point per (bucket, source), ascending by bucket then source. */
11339
+ access_by_source: components["schemas"]["AdminSourcePoint"][];
11340
+ /**
11341
+ * Format: date-time
11342
+ * @description Oldest access event still retained (now minus
11343
+ * `retention.access_event_days`); buckets before it read as zeros.
11344
+ */
11345
+ earliest_retained_at: string;
11346
+ };
11347
+ /**
11348
+ * @description One opaque most-accessed resource: its type, where it lives and how often
11349
+ * the user accessed it. Deliberately carries no title, slug or content — only
11350
+ * the first 8 characters of the resource id. The identity fields share their
11351
+ * names with AdminUserTimelineEvent.
11352
+ */
11353
+ AdminTopAccessedResource: {
11354
+ /** @enum {string} */
11355
+ resource_type: "prompt" | "artifact" | "blueprint" | "memory" | "project" | "agent";
11356
+ /**
11357
+ * @description First 8 characters of the resource id.
11358
+ * @example 3f2a9c1e
11359
+ */
11360
+ resource_short_id: string;
11361
+ /** Format: uuid */
11362
+ team_id: string;
11363
+ team_name: string;
11364
+ /**
11365
+ * Format: uuid
11366
+ * @description The resource's project (for a `project` row, the project itself). Null
11367
+ * for agents and for deleted resources.
11368
+ */
11369
+ project_id: string | null;
11370
+ project_name: string | null;
11371
+ /** @description True when the resource no longer exists (access events outlive their resource until pruned). */
11372
+ resource_deleted: boolean;
11373
+ /** Format: int64 */
11374
+ access_count: number;
11375
+ };
11376
+ /**
11377
+ * @description The resources a user accessed most in a range
11378
+ * (GET /api/v1/admin/users/{id}/top-accessed-resources).
11379
+ */
11380
+ AdminTopAccessedResourcesResponse: {
11381
+ /**
11382
+ * Format: date-time
11383
+ * @description Inclusive start of the range actually used (after defaulting); not snapped.
11384
+ */
11385
+ from: string;
11386
+ /**
11387
+ * Format: date-time
11388
+ * @description Exclusive end of the range actually used (after defaulting).
11389
+ */
11390
+ to: string;
11391
+ /** @description Most accessed first; ties broken by resource id. */
11392
+ items: components["schemas"]["AdminTopAccessedResource"][];
11393
+ /**
11394
+ * Format: date-time
11395
+ * @description Oldest access event still retained (now minus
11396
+ * `retention.access_event_days`); accesses before it are not counted.
11397
+ */
11398
+ earliest_retained_at: string;
11399
+ };
11211
11400
  ProjectResponse: components["schemas"]["Project"] & {
11212
11401
  /**
11213
11402
  * @description Whether the project's git URL matches a repository accessible via the team's GitHub App installation
@@ -20753,8 +20942,80 @@ export interface operations {
20753
20942
  created_from?: string;
20754
20943
  /** @description Only teams created at or before this instant (inclusive). */
20755
20944
  created_to?: string;
20945
+ /** @description Only teams with at least this many members (inclusive). */
20946
+ member_count_min?: number;
20947
+ /** @description Only teams with at most this many members (inclusive). */
20948
+ member_count_max?: number;
20949
+ /** @description Only teams with at least this many members holding the owner role (always 1 by application invariant; any other value is integrity drift) (inclusive). */
20950
+ owner_count_min?: number;
20951
+ /** @description Only teams with at most this many members holding the owner role (always 1 by application invariant; any other value is integrity drift) (inclusive). */
20952
+ owner_count_max?: number;
20953
+ /** @description Only teams with at least this many members holding the admin role (inclusive). */
20954
+ admin_count_min?: number;
20955
+ /** @description Only teams with at most this many members holding the admin role (inclusive). */
20956
+ admin_count_max?: number;
20957
+ /** @description Only teams with at least this many projects in the team (inclusive). */
20958
+ project_count_min?: number;
20959
+ /** @description Only teams with at most this many projects in the team (inclusive). */
20960
+ project_count_max?: number;
20961
+ /** @description Only teams with at least this many prompts in the team (inclusive). */
20962
+ prompt_count_min?: number;
20963
+ /** @description Only teams with at most this many prompts in the team (inclusive). */
20964
+ prompt_count_max?: number;
20965
+ /** @description Only teams with at least this many memories in the team (inclusive). */
20966
+ memory_count_min?: number;
20967
+ /** @description Only teams with at most this many memories in the team (inclusive). */
20968
+ memory_count_max?: number;
20969
+ /** @description Only teams with at least this many artifacts in the team (inclusive). */
20970
+ artifact_count_min?: number;
20971
+ /** @description Only teams with at most this many artifacts in the team (inclusive). */
20972
+ artifact_count_max?: number;
20973
+ /** @description Only teams with at least this many blueprints in the team (inclusive). */
20974
+ blueprint_count_min?: number;
20975
+ /** @description Only teams with at most this many blueprints in the team (inclusive). */
20976
+ blueprint_count_max?: number;
20977
+ /** @description Only teams with at least this many agents in the team (inclusive). */
20978
+ agent_count_min?: number;
20979
+ /** @description Only teams with at most this many agents in the team (inclusive). */
20980
+ agent_count_max?: number;
20981
+ /** @description Only teams with at least this many feeds in the team (inclusive). */
20982
+ feed_count_min?: number;
20983
+ /** @description Only teams with at most this many feeds in the team (inclusive). */
20984
+ feed_count_max?: number;
20985
+ /** @description Only teams with at least this many feed items in the team (inclusive). */
20986
+ feed_item_count_min?: number;
20987
+ /** @description Only teams with at most this many feed items in the team (inclusive). */
20988
+ feed_item_count_max?: number;
20989
+ /** @description Only teams with at least this many comments in the team (inclusive). */
20990
+ comment_count_min?: number;
20991
+ /** @description Only teams with at most this many comments in the team (inclusive). */
20992
+ comment_count_max?: number;
20993
+ /** @description Only teams with at least this many attachments in the team (inclusive). */
20994
+ attachment_count_min?: number;
20995
+ /** @description Only teams with at most this many attachments in the team (inclusive). */
20996
+ attachment_count_max?: number;
20997
+ /** @description Only teams with at least this many resources in the team across all nine types (the sum of resource_counts) (inclusive). */
20998
+ total_resource_count_min?: number;
20999
+ /** @description Only teams with at most this many resources in the team across all nine types (the sum of resource_counts) (inclusive). */
21000
+ total_resource_count_max?: number;
21001
+ /** @description Case-insensitive exact match on the team owner's email (the user referenced by the team's owner). For substring matching use `search`. */
21002
+ owner_email?: string;
21003
+ /** @description true = the team has at least one embedding provider of its own; false = it does not; omit = any. Instance-level fallback configuration never counts. */
21004
+ embedding_configured?: boolean;
21005
+ /** @description true = the team has at least one LLM model provider of its own; false = it does not; omit = any. Instance-level fallback configuration never counts. */
21006
+ llm_configured?: boolean;
21007
+ /** @description true = the team has its own AI summary settings with summaries enabled; false = it does not; omit = any. Instance-level fallback configuration never counts. */
21008
+ ai_summary_enabled?: boolean;
21009
+ /** @description true = the team has its own email provider (regardless of its delivery health); false = it does not; omit = any. Instance-level fallback configuration never counts. */
21010
+ email_configured?: boolean;
21011
+ /** @description true = the team has its own GitHub App configuration or at least one GitHub App installation (suspended installations included); false = it does not; omit = any. Instance-level fallback configuration never counts. */
21012
+ github_configured?: boolean;
21013
+ /** @description true = the team has its own search settings; false = it does not; omit = any. Instance-level fallback configuration never counts. */
21014
+ search_settings_customized?: boolean;
21015
+ /** @description true = the team has at least one enabled freshness rule; false = it does not; omit = any. Instance-level fallback configuration never counts. */
21016
+ freshness_enabled?: boolean;
20756
21017
  /** @description Column to sort by. Ties are always broken by team id so paging is stable. */
20757
- sort_by?: "created_at" | "name" | "member_count";
21018
+ sort_by?: "created_at" | "name" | "member_count" | "owner_count" | "admin_count" | "project_count" | "prompt_count" | "memory_count" | "artifact_count" | "blueprint_count" | "agent_count" | "feed_count" | "feed_item_count" | "comment_count" | "attachment_count" | "total_resource_count";
20758
21019
  /** @description Sort direction. */
20759
21020
  sort_order?: "asc" | "desc";
20760
21021
  };
@@ -21326,6 +21587,126 @@ export interface operations {
21326
21587
  };
21327
21588
  };
21328
21589
  };
21590
+ getAdminUserResourceAccessMetrics: {
21591
+ parameters: {
21592
+ query?: {
21593
+ /** @description Inclusive start of the range. Defaults to 30 days before `to`. */
21594
+ from?: string;
21595
+ /** @description Exclusive end of the range. Defaults to now. */
21596
+ to?: string;
21597
+ /** @description Bucket size. */
21598
+ granularity?: "day" | "week" | "month";
21599
+ };
21600
+ header?: never;
21601
+ path: {
21602
+ /** @description User id (UUID) */
21603
+ id: string;
21604
+ };
21605
+ cookie?: never;
21606
+ };
21607
+ requestBody?: never;
21608
+ responses: {
21609
+ /** @description Bucketed access counts per source */
21610
+ 200: {
21611
+ headers: {
21612
+ [name: string]: unknown;
21613
+ };
21614
+ content: {
21615
+ "application/json": components["schemas"]["AdminUserAccessMetrics"];
21616
+ };
21617
+ };
21618
+ /**
21619
+ * @description Bad request — malformed user id, `to` is not after `from`, the range
21620
+ * exceeds the maximum span, or `granularity` is outside its enum
21621
+ */
21622
+ 400: {
21623
+ headers: {
21624
+ [name: string]: unknown;
21625
+ };
21626
+ content: {
21627
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21628
+ };
21629
+ };
21630
+ /** @description Not found — unknown user id, or the caller is not an instance admin */
21631
+ 404: {
21632
+ headers: {
21633
+ [name: string]: unknown;
21634
+ };
21635
+ content: {
21636
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21637
+ };
21638
+ };
21639
+ /** @description Internal server error */
21640
+ 500: {
21641
+ headers: {
21642
+ [name: string]: unknown;
21643
+ };
21644
+ content: {
21645
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21646
+ };
21647
+ };
21648
+ };
21649
+ };
21650
+ getAdminUserTopAccessedResources: {
21651
+ parameters: {
21652
+ query?: {
21653
+ /** @description Inclusive start of the range. Defaults to 30 days before `to`. */
21654
+ from?: string;
21655
+ /** @description Exclusive end of the range. Defaults to now. */
21656
+ to?: string;
21657
+ /** @description Maximum number of rows. */
21658
+ limit?: number;
21659
+ };
21660
+ header?: never;
21661
+ path: {
21662
+ /** @description User id (UUID) */
21663
+ id: string;
21664
+ };
21665
+ cookie?: never;
21666
+ };
21667
+ requestBody?: never;
21668
+ responses: {
21669
+ /** @description The most-accessed resources, most accessed first */
21670
+ 200: {
21671
+ headers: {
21672
+ [name: string]: unknown;
21673
+ };
21674
+ content: {
21675
+ "application/json": components["schemas"]["AdminTopAccessedResourcesResponse"];
21676
+ };
21677
+ };
21678
+ /**
21679
+ * @description Bad request — malformed user id, `to` is not after `from`, the range
21680
+ * exceeds the maximum span, or `limit` is out of range
21681
+ */
21682
+ 400: {
21683
+ headers: {
21684
+ [name: string]: unknown;
21685
+ };
21686
+ content: {
21687
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21688
+ };
21689
+ };
21690
+ /** @description Not found — unknown user id, or the caller is not an instance admin */
21691
+ 404: {
21692
+ headers: {
21693
+ [name: string]: unknown;
21694
+ };
21695
+ content: {
21696
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21697
+ };
21698
+ };
21699
+ /** @description Internal server error */
21700
+ 500: {
21701
+ headers: {
21702
+ [name: string]: unknown;
21703
+ };
21704
+ content: {
21705
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21706
+ };
21707
+ };
21708
+ };
21709
+ };
21329
21710
  getAdminUserNotificationPreferences: {
21330
21711
  parameters: {
21331
21712
  query?: never;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibexp/api-client",
3
- "version": "0.81.0",
3
+ "version": "0.83.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": {