@vibexp/api-client 0.32.0 → 0.34.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
@@ -2754,9 +2754,11 @@ export interface paths {
2754
2754
  };
2755
2755
  /**
2756
2756
  * List instance users
2757
- * @description Returns a paginated, instance-wide listing of users (newest first) with
2758
- * each user's team count. Instance-admin only; non-admin and unauthenticated
2759
- * requests receive 404.
2757
+ * @description Returns a paginated, instance-wide listing of users with each user's team
2758
+ * count. Supports case-insensitive search, typed filters, and allowlisted
2759
+ * sorting; filters combine with AND and the pagination envelope reflects the
2760
+ * filtered set. Instance-admin only; non-admin and unauthenticated requests
2761
+ * receive 404.
2760
2762
  */
2761
2763
  get: operations["listAdminUsers"];
2762
2764
  put?: never;
@@ -2798,8 +2800,10 @@ export interface paths {
2798
2800
  };
2799
2801
  /**
2800
2802
  * List instance teams
2801
- * @description Returns a paginated, instance-wide listing of teams (newest first) with
2802
- * each team's owner and member count. Instance-admin only; non-admin and
2803
+ * @description Returns a paginated, instance-wide listing of teams with each team's owner
2804
+ * and member count. Supports case-insensitive search, typed filters, and
2805
+ * allowlisted sorting; filters combine with AND and the pagination envelope
2806
+ * reflects the filtered set. Instance-admin only; non-admin and
2803
2807
  * unauthenticated requests receive 404.
2804
2808
  */
2805
2809
  get: operations["listAdminTeams"];
@@ -2833,6 +2837,59 @@ export interface paths {
2833
2837
  patch?: never;
2834
2838
  trace?: never;
2835
2839
  };
2840
+ "/api/v1/admin/dashboard/overview": {
2841
+ parameters: {
2842
+ query?: never;
2843
+ header?: never;
2844
+ path?: never;
2845
+ cookie?: never;
2846
+ };
2847
+ /**
2848
+ * Get admin dashboard overview
2849
+ * @description Returns instance-wide entity totals, status/type breakdowns, and system
2850
+ * health (database size and per-table estimated row counts), plus the running
2851
+ * backend version. Computed on demand — there are no rollup tables.
2852
+ * Instance-admin only; non-admin and unauthenticated requests receive 404.
2853
+ */
2854
+ get: operations["getAdminDashboardOverview"];
2855
+ put?: never;
2856
+ post?: never;
2857
+ delete?: never;
2858
+ options?: never;
2859
+ head?: never;
2860
+ patch?: never;
2861
+ trace?: never;
2862
+ };
2863
+ "/api/v1/admin/dashboard/timeseries": {
2864
+ parameters: {
2865
+ query?: never;
2866
+ header?: never;
2867
+ path?: never;
2868
+ cookie?: never;
2869
+ };
2870
+ /**
2871
+ * Get admin dashboard time series
2872
+ * @description Returns growth, sign-in, and resource-access-by-source counts bucketed over
2873
+ * a time range. Omitting the parameters yields the last 30 days at `day`
2874
+ * granularity. Every bucket in the range is present in every series with an
2875
+ * explicit 0.
2876
+ *
2877
+ * Both event sources are TTL-pruned (config `retention.activity_days` and
2878
+ * `retention.access_event_days`), so the response carries a `data_window`
2879
+ * stating the earliest instant for which data still exists — a range older
2880
+ * than that legitimately reads as zeros rather than missing data.
2881
+ *
2882
+ * Instance-admin only; non-admin and unauthenticated requests receive 404.
2883
+ */
2884
+ get: operations["getAdminDashboardTimeseries"];
2885
+ put?: never;
2886
+ post?: never;
2887
+ delete?: never;
2888
+ options?: never;
2889
+ head?: never;
2890
+ patch?: never;
2891
+ trace?: never;
2892
+ };
2836
2893
  "/api/v1/{team_id}/comments": {
2837
2894
  parameters: {
2838
2895
  query?: never;
@@ -8798,6 +8855,16 @@ export interface components {
8798
8855
  id: string;
8799
8856
  /** @example Acme Engineering */
8800
8857
  name: string;
8858
+ /**
8859
+ * @description URL-safe team identifier.
8860
+ * @example acme-engineering
8861
+ */
8862
+ slug: string;
8863
+ /**
8864
+ * @description True for a user's default personal workspace, false for a shared team workspace.
8865
+ * @example false
8866
+ */
8867
+ is_personal: boolean;
8801
8868
  owner: components["schemas"]["AdminTeamOwner"];
8802
8869
  /**
8803
8870
  * Format: int64
@@ -8855,12 +8922,242 @@ export interface components {
8855
8922
  id: string;
8856
8923
  /** @example Acme Engineering */
8857
8924
  name: string;
8925
+ /**
8926
+ * @description URL-safe team identifier.
8927
+ * @example acme-engineering
8928
+ */
8929
+ slug: string;
8930
+ /**
8931
+ * @description True for a user's default personal workspace, false for a shared team workspace.
8932
+ * @example false
8933
+ */
8934
+ is_personal: boolean;
8858
8935
  owner: components["schemas"]["AdminTeamOwner"];
8859
8936
  /** Format: date-time */
8860
8937
  created_at: string;
8861
8938
  /** @description The team's members. */
8862
8939
  members: components["schemas"]["AdminTeamMember"][];
8863
8940
  };
8941
+ /**
8942
+ * @description Instance-wide totals for every top-level entity. A superset of
8943
+ * AdminInstanceCounts, which stays as-is for the legacy stats endpoint.
8944
+ */
8945
+ AdminExtendedCounts: {
8946
+ /**
8947
+ * Format: int64
8948
+ * @example 42
8949
+ */
8950
+ users: number;
8951
+ /**
8952
+ * Format: int64
8953
+ * @example 12
8954
+ */
8955
+ teams: number;
8956
+ /**
8957
+ * Format: int64
8958
+ * @example 30
8959
+ */
8960
+ projects: number;
8961
+ /**
8962
+ * Format: int64
8963
+ * @example 340
8964
+ */
8965
+ prompts: number;
8966
+ /**
8967
+ * Format: int64
8968
+ * @example 128
8969
+ */
8970
+ artifacts: number;
8971
+ /**
8972
+ * Format: int64
8973
+ * @example 512
8974
+ */
8975
+ memories: number;
8976
+ /**
8977
+ * Format: int64
8978
+ * @example 64
8979
+ */
8980
+ blueprints: number;
8981
+ /**
8982
+ * Format: int64
8983
+ * @example 9
8984
+ */
8985
+ agents: number;
8986
+ /**
8987
+ * Format: int64
8988
+ * @example 4
8989
+ */
8990
+ feeds: number;
8991
+ /**
8992
+ * Format: int64
8993
+ * @example 17
8994
+ */
8995
+ api_keys: number;
8996
+ };
8997
+ /** @description One value of a grouped column plus how many rows carry it. */
8998
+ AdminBreakdownBucket: {
8999
+ /**
9000
+ * @description The column value. NULL values are reported as an empty string.
9001
+ * @example active
9002
+ */
9003
+ value: string;
9004
+ /**
9005
+ * Format: int64
9006
+ * @example 120
9007
+ */
9008
+ count: number;
9009
+ };
9010
+ /** @description A GROUP BY over one status/type column of one entity table. */
9011
+ AdminEntityBreakdown: {
9012
+ /**
9013
+ * @description The entity table the breakdown covers.
9014
+ * @example prompts
9015
+ */
9016
+ entity: string;
9017
+ /**
9018
+ * @description The grouped column.
9019
+ * @example status
9020
+ */
9021
+ field: string;
9022
+ /** @description One entry per distinct value, most frequent first. */
9023
+ buckets: components["schemas"]["AdminBreakdownBucket"][];
9024
+ };
9025
+ /** @description Approximate row count for one table. */
9026
+ AdminTableStat: {
9027
+ /** @example prompts */
9028
+ table: string;
9029
+ /**
9030
+ * Format: int64
9031
+ * @description ESTIMATE from pg_stat_user_tables.n_live_tup, not an exact COUNT(*) —
9032
+ * an exact per-table count does not scale and this figure is only meant
9033
+ * for relative sizing. Freshness depends on autovacuum/ANALYZE.
9034
+ * @example 34012
9035
+ */
9036
+ estimated_rows: number;
9037
+ };
9038
+ /** @description Instance storage health. */
9039
+ AdminSystemHealth: {
9040
+ /**
9041
+ * Format: int64
9042
+ * @description pg_database_size(current_database()).
9043
+ * @example 184549376
9044
+ */
9045
+ database_size_bytes: number;
9046
+ /** @description Per-table estimated row counts, largest first. */
9047
+ tables: components["schemas"]["AdminTableStat"][];
9048
+ };
9049
+ /** @description Totals, breakdowns and system health (GET /api/v1/admin/dashboard/overview). */
9050
+ AdminDashboardOverview: {
9051
+ counts: components["schemas"]["AdminExtendedCounts"];
9052
+ /** @description One entry per entity/column pair that has a status or type column. */
9053
+ breakdowns: components["schemas"]["AdminEntityBreakdown"][];
9054
+ system_health: components["schemas"]["AdminSystemHealth"];
9055
+ /**
9056
+ * @description The running backend application version ("dev" when unset).
9057
+ * @example 1.2.3
9058
+ */
9059
+ version: string;
9060
+ };
9061
+ /** @description New rows created per entity within one time bucket. */
9062
+ AdminGrowthPoint: {
9063
+ /**
9064
+ * Format: date-time
9065
+ * @description Start of the bucket, in UTC.
9066
+ */
9067
+ bucket: string;
9068
+ /** Format: int64 */
9069
+ users: number;
9070
+ /** Format: int64 */
9071
+ teams: number;
9072
+ /** Format: int64 */
9073
+ projects: number;
9074
+ /** Format: int64 */
9075
+ prompts: number;
9076
+ /** Format: int64 */
9077
+ artifacts: number;
9078
+ /** Format: int64 */
9079
+ memories: number;
9080
+ };
9081
+ /** @description A single count within one time bucket. */
9082
+ AdminCountPoint: {
9083
+ /**
9084
+ * Format: date-time
9085
+ * @description Start of the bucket, in UTC.
9086
+ */
9087
+ bucket: string;
9088
+ /** Format: int64 */
9089
+ count: number;
9090
+ };
9091
+ /** @description A count for one access source within one time bucket. */
9092
+ AdminSourcePoint: {
9093
+ /**
9094
+ * Format: date-time
9095
+ * @description Start of the bucket, in UTC.
9096
+ */
9097
+ bucket: string;
9098
+ /**
9099
+ * @description Access source (e.g. "web", "cli", "mcp").
9100
+ * @example mcp
9101
+ */
9102
+ source: string;
9103
+ /** Format: int64 */
9104
+ count: number;
9105
+ };
9106
+ /**
9107
+ * @description Earliest instant for which event data still exists. Both source tables are
9108
+ * TTL-pruned (config retention.activity_days / retention.access_event_days),
9109
+ * so a chart asking for a range older than these values will legitimately show
9110
+ * zeros rather than missing data.
9111
+ */
9112
+ AdminDataWindow: {
9113
+ /**
9114
+ * Format: date-time
9115
+ * @description now() - retention.activity_days.
9116
+ */
9117
+ sign_ins_earliest_retained_at: string;
9118
+ /**
9119
+ * Format: date-time
9120
+ * @description now() - retention.access_event_days.
9121
+ */
9122
+ access_by_source_earliest_retained_at: string;
9123
+ };
9124
+ /**
9125
+ * @description Bucketed metrics over a time range (GET /api/v1/admin/dashboard/timeseries).
9126
+ * Every bucket in the requested range is present in every series with an
9127
+ * explicit 0 — the series are gap-filled, never sparse.
9128
+ */
9129
+ AdminTimeseriesResponse: {
9130
+ /**
9131
+ * Format: date-time
9132
+ * @description Inclusive start of the range actually used. This is snapped DOWN to the
9133
+ * start of its bucket, so it may precede the requested `from` (asking for
9134
+ * 2026-07-15 at month granularity reports and queries 2026-07-01). Buckets
9135
+ * are therefore always whole, never partial at the head.
9136
+ */
9137
+ from: string;
9138
+ /**
9139
+ * Format: date-time
9140
+ * @description Exclusive end of the range actually used (after defaulting). This is NOT
9141
+ * snapped, so the final bucket may cover only part of its period.
9142
+ */
9143
+ to: string;
9144
+ /**
9145
+ * @description Bucket size actually used.
9146
+ * @enum {string}
9147
+ */
9148
+ granularity: "day" | "week" | "month";
9149
+ /** @description New entities per bucket, ascending by bucket. */
9150
+ growth: components["schemas"]["AdminGrowthPoint"][];
9151
+ /** @description Successful sign-ins per bucket (activities.auth_login), ascending. */
9152
+ sign_ins: components["schemas"]["AdminCountPoint"][];
9153
+ /**
9154
+ * @description Resource accesses per bucket per source, ascending by bucket then source.
9155
+ * Only sources actually observed in the range appear; a source with no
9156
+ * events in a bucket is gap-filled to 0 for the sources that do appear.
9157
+ */
9158
+ access_by_source: components["schemas"]["AdminSourcePoint"][];
9159
+ data_window: components["schemas"]["AdminDataWindow"];
9160
+ };
8864
9161
  ProjectResponse: components["schemas"]["Project"] & {
8865
9162
  /**
8866
9163
  * @description Whether the project's git URL matches a repository accessible via the team's GitHub App installation
@@ -18793,6 +19090,18 @@ export interface operations {
18793
19090
  page?: number;
18794
19091
  /** @description Items per page */
18795
19092
  limit?: number;
19093
+ /** @description Case-insensitive substring match over the user's email and name. */
19094
+ search?: string;
19095
+ /** @description Exact match on the user's identity-provider name (e.g. "google", "oidc"). */
19096
+ idp_provider?: string;
19097
+ /** @description Only users created at or after this instant (inclusive). */
19098
+ created_from?: string;
19099
+ /** @description Only users created at or before this instant (inclusive). */
19100
+ created_to?: string;
19101
+ /** @description Column to sort by. Ties are always broken by user id so paging is stable. */
19102
+ sort_by?: "created_at" | "email" | "name" | "team_count";
19103
+ /** @description Sort direction. */
19104
+ sort_order?: "asc" | "desc";
18796
19105
  };
18797
19106
  header?: never;
18798
19107
  path?: never;
@@ -18809,6 +19118,15 @@ export interface operations {
18809
19118
  "application/json": components["schemas"]["AdminUserListResponse"];
18810
19119
  };
18811
19120
  };
19121
+ /** @description Bad request — a query parameter is malformed or outside its enum */
19122
+ 400: {
19123
+ headers: {
19124
+ [name: string]: unknown;
19125
+ };
19126
+ content: {
19127
+ "application/problem+json": components["schemas"]["ErrorResponse"];
19128
+ };
19129
+ };
18812
19130
  /** @description Not found — the caller is not an instance admin (surface not advertised) */
18813
19131
  404: {
18814
19132
  headers: {
@@ -18877,6 +19195,18 @@ export interface operations {
18877
19195
  page?: number;
18878
19196
  /** @description Items per page */
18879
19197
  limit?: number;
19198
+ /** @description Case-insensitive substring match over the team name, team slug, and the owner's email. */
19199
+ search?: string;
19200
+ /** @description Narrow to personal workspaces (true) or shared team workspaces (false). */
19201
+ is_personal?: boolean;
19202
+ /** @description Only teams created at or after this instant (inclusive). */
19203
+ created_from?: string;
19204
+ /** @description Only teams created at or before this instant (inclusive). */
19205
+ created_to?: string;
19206
+ /** @description Column to sort by. Ties are always broken by team id so paging is stable. */
19207
+ sort_by?: "created_at" | "name" | "member_count";
19208
+ /** @description Sort direction. */
19209
+ sort_order?: "asc" | "desc";
18880
19210
  };
18881
19211
  header?: never;
18882
19212
  path?: never;
@@ -18893,6 +19223,15 @@ export interface operations {
18893
19223
  "application/json": components["schemas"]["AdminTeamListResponse"];
18894
19224
  };
18895
19225
  };
19226
+ /** @description Bad request — a query parameter is malformed or outside its enum */
19227
+ 400: {
19228
+ headers: {
19229
+ [name: string]: unknown;
19230
+ };
19231
+ content: {
19232
+ "application/problem+json": components["schemas"]["ErrorResponse"];
19233
+ };
19234
+ };
18896
19235
  /** @description Not found — the caller is not an instance admin (surface not advertised) */
18897
19236
  404: {
18898
19237
  headers: {
@@ -18954,6 +19293,101 @@ export interface operations {
18954
19293
  };
18955
19294
  };
18956
19295
  };
19296
+ getAdminDashboardOverview: {
19297
+ parameters: {
19298
+ query?: never;
19299
+ header?: never;
19300
+ path?: never;
19301
+ cookie?: never;
19302
+ };
19303
+ requestBody?: never;
19304
+ responses: {
19305
+ /** @description Dashboard overview */
19306
+ 200: {
19307
+ headers: {
19308
+ [name: string]: unknown;
19309
+ };
19310
+ content: {
19311
+ "application/json": components["schemas"]["AdminDashboardOverview"];
19312
+ };
19313
+ };
19314
+ /** @description Not found — the caller is not an instance admin (surface not advertised) */
19315
+ 404: {
19316
+ headers: {
19317
+ [name: string]: unknown;
19318
+ };
19319
+ content: {
19320
+ "application/problem+json": components["schemas"]["ErrorResponse"];
19321
+ };
19322
+ };
19323
+ /** @description Internal server error */
19324
+ 500: {
19325
+ headers: {
19326
+ [name: string]: unknown;
19327
+ };
19328
+ content: {
19329
+ "application/problem+json": components["schemas"]["ErrorResponse"];
19330
+ };
19331
+ };
19332
+ };
19333
+ };
19334
+ getAdminDashboardTimeseries: {
19335
+ parameters: {
19336
+ query?: {
19337
+ /** @description Inclusive start of the range. Defaults to 30 days before `to`. */
19338
+ from?: string;
19339
+ /** @description Exclusive end of the range. Defaults to now. */
19340
+ to?: string;
19341
+ /** @description Bucket size. */
19342
+ granularity?: "day" | "week" | "month";
19343
+ };
19344
+ header?: never;
19345
+ path?: never;
19346
+ cookie?: never;
19347
+ };
19348
+ requestBody?: never;
19349
+ responses: {
19350
+ /** @description Bucketed time series for the requested range */
19351
+ 200: {
19352
+ headers: {
19353
+ [name: string]: unknown;
19354
+ };
19355
+ content: {
19356
+ "application/json": components["schemas"]["AdminTimeseriesResponse"];
19357
+ };
19358
+ };
19359
+ /**
19360
+ * @description Bad request — `to` is not after `from`, the range exceeds the maximum
19361
+ * span, or `granularity` is outside its enum
19362
+ */
19363
+ 400: {
19364
+ headers: {
19365
+ [name: string]: unknown;
19366
+ };
19367
+ content: {
19368
+ "application/problem+json": components["schemas"]["ErrorResponse"];
19369
+ };
19370
+ };
19371
+ /** @description Not found — the caller is not an instance admin (surface not advertised) */
19372
+ 404: {
19373
+ headers: {
19374
+ [name: string]: unknown;
19375
+ };
19376
+ content: {
19377
+ "application/problem+json": components["schemas"]["ErrorResponse"];
19378
+ };
19379
+ };
19380
+ /** @description Internal server error */
19381
+ 500: {
19382
+ headers: {
19383
+ [name: string]: unknown;
19384
+ };
19385
+ content: {
19386
+ "application/problem+json": components["schemas"]["ErrorResponse"];
19387
+ };
19388
+ };
19389
+ };
19390
+ };
18957
19391
  listComments: {
18958
19392
  parameters: {
18959
19393
  query: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibexp/api-client",
3
- "version": "0.32.0",
3
+ "version": "0.34.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": {