@vibexp/api-client 0.59.0 → 0.61.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
@@ -3231,6 +3231,121 @@ export interface paths {
3231
3231
  patch?: never;
3232
3232
  trace?: never;
3233
3233
  };
3234
+ "/api/v1/{team_id}/freshness/metrics/over-time": {
3235
+ parameters: {
3236
+ query?: never;
3237
+ header?: never;
3238
+ path: {
3239
+ /** @description Team identifier */
3240
+ team_id: string;
3241
+ };
3242
+ cookie?: never;
3243
+ };
3244
+ /**
3245
+ * Freshness activity over time
3246
+ * @description Daily marked/cleared counts and the reconstructed stale level over the requested window, zero-filled so every day in the range is present.
3247
+ */
3248
+ get: operations["getFreshnessOverTimeMetrics"];
3249
+ put?: never;
3250
+ post?: never;
3251
+ delete?: never;
3252
+ options?: never;
3253
+ head?: never;
3254
+ patch?: never;
3255
+ trace?: never;
3256
+ };
3257
+ "/api/v1/{team_id}/freshness/metrics/by-type": {
3258
+ parameters: {
3259
+ query?: never;
3260
+ header?: never;
3261
+ path: {
3262
+ /** @description Team identifier */
3263
+ team_id: string;
3264
+ };
3265
+ cookie?: never;
3266
+ };
3267
+ /**
3268
+ * Stale resources by resource type
3269
+ * @description Current stale counts per resource type. All four types are always present; one with nothing stale reports 0.
3270
+ */
3271
+ get: operations["getFreshnessByTypeMetrics"];
3272
+ put?: never;
3273
+ post?: never;
3274
+ delete?: never;
3275
+ options?: never;
3276
+ head?: never;
3277
+ patch?: never;
3278
+ trace?: never;
3279
+ };
3280
+ "/api/v1/{team_id}/freshness/metrics/by-project": {
3281
+ parameters: {
3282
+ query?: never;
3283
+ header?: never;
3284
+ path: {
3285
+ /** @description Team identifier */
3286
+ team_id: string;
3287
+ };
3288
+ cookie?: never;
3289
+ };
3290
+ /**
3291
+ * Stale resources by project
3292
+ * @description Current stale counts per project in the team, including projects with nothing stale.
3293
+ */
3294
+ get: operations["getFreshnessByProjectMetrics"];
3295
+ put?: never;
3296
+ post?: never;
3297
+ delete?: never;
3298
+ options?: never;
3299
+ head?: never;
3300
+ patch?: never;
3301
+ trace?: never;
3302
+ };
3303
+ "/api/v1/{team_id}/freshness/metrics/by-rule": {
3304
+ parameters: {
3305
+ query?: never;
3306
+ header?: never;
3307
+ path: {
3308
+ /** @description Team identifier */
3309
+ team_id: string;
3310
+ };
3311
+ cookie?: never;
3312
+ };
3313
+ /**
3314
+ * Resources marked by each rule
3315
+ * @description How many resources each of the team's rules currently marks, including rules that match nothing. This is how an over-broad rule is spotted.
3316
+ */
3317
+ get: operations["getFreshnessByRuleMetrics"];
3318
+ put?: never;
3319
+ post?: never;
3320
+ delete?: never;
3321
+ options?: never;
3322
+ head?: never;
3323
+ patch?: never;
3324
+ trace?: never;
3325
+ };
3326
+ "/api/v1/{team_id}/freshness/audit": {
3327
+ parameters: {
3328
+ query?: never;
3329
+ header?: never;
3330
+ path: {
3331
+ /** @description Team identifier */
3332
+ team_id: string;
3333
+ };
3334
+ cookie?: never;
3335
+ };
3336
+ /**
3337
+ * List the team's freshness audit log
3338
+ * @description Every recorded mark and clear for the team, newest first and paginated. Readable by any member. The list is empty, never null, past the last page.
3339
+ */
3340
+ get: operations["listFreshnessAudit"];
3341
+ put?: never;
3342
+ post?: never;
3343
+ delete?: never;
3344
+ options?: never;
3345
+ head?: never;
3346
+ patch?: never;
3347
+ trace?: never;
3348
+ };
3234
3349
  "/api/v1/{team_id}/settings/embedding-providers": {
3235
3350
  parameters: {
3236
3351
  query?: never;
@@ -4687,6 +4802,7 @@ export interface components {
4687
4802
  related?: components["schemas"]["RelatedResource"][];
4688
4803
  /** @description Computed embedding-similarity neighborhood of this resource (up to 5), derived live at read time from vector similarity — NOT stored edges and distinct from `related`. Populated on the detail GET; empty otherwise. */
4689
4804
  similar?: components["schemas"]["SimilarResource"][];
4805
+ freshness?: components["schemas"]["ResourceFreshnessState"];
4690
4806
  };
4691
4807
  CreatePromptRequest: {
4692
4808
  /** @example Code Review Template */
@@ -5998,6 +6114,7 @@ export interface components {
5998
6114
  related?: components["schemas"]["RelatedResource"][];
5999
6115
  /** @description Computed embedding-similarity neighborhood of this resource (up to 5), derived live at read time from vector similarity — NOT stored edges and distinct from `related`. Populated on the detail GET; empty otherwise. */
6000
6116
  similar?: components["schemas"]["SimilarResource"][];
6117
+ freshness?: components["schemas"]["ResourceFreshnessState"];
6001
6118
  };
6002
6119
  CreateArtifactRequest: {
6003
6120
  /**
@@ -6776,6 +6893,7 @@ export interface components {
6776
6893
  related?: components["schemas"]["RelatedResource"][];
6777
6894
  /** @description Computed embedding-similarity neighborhood of this resource (up to 5), derived live at read time from vector similarity — NOT stored edges and distinct from `related`. Populated on the detail GET; empty otherwise. */
6778
6895
  similar?: components["schemas"]["SimilarResource"][];
6896
+ freshness?: components["schemas"]["ResourceFreshnessState"];
6779
6897
  };
6780
6898
  CreateMemoryRequest: {
6781
6899
  /**
@@ -7075,6 +7193,7 @@ export interface components {
7075
7193
  related?: components["schemas"]["RelatedResource"][];
7076
7194
  /** @description Computed embedding-similarity neighborhood of this resource (up to 5), derived live at read time from vector similarity — NOT stored edges and distinct from `related`. Populated on the detail GET; empty otherwise. */
7077
7195
  similar?: components["schemas"]["SimilarResource"][];
7196
+ freshness?: components["schemas"]["ResourceFreshnessState"];
7078
7197
  };
7079
7198
  /** @description Read-only import provenance; present only for imported blueprints. */
7080
7199
  BlueprintSource: {
@@ -8924,6 +9043,209 @@ export interface components {
8924
9043
  interval_seconds: number;
8925
9044
  reversibility_enabled: boolean;
8926
9045
  };
9046
+ /**
9047
+ * @description The reporting window for a time-series metric. The options mirror the other analytics endpoints so one range selector drives every chart.
9048
+ * @example 30d
9049
+ * @enum {string}
9050
+ */
9051
+ FreshnessMetricsRange: "7d" | "14d" | "30d" | "60d" | "90d" | "180d";
9052
+ /** @description One calendar day (UTC) of freshness activity, zero-filled: every day in the window is present even when nothing happened. */
9053
+ FreshnessDailyStaleCount: {
9054
+ /**
9055
+ * Format: date
9056
+ * @example 2026-05-01
9057
+ */
9058
+ date: string;
9059
+ /**
9060
+ * Format: int32
9061
+ * @description Resources that became stale on this day.
9062
+ */
9063
+ marked: number;
9064
+ /**
9065
+ * Format: int32
9066
+ * @description Resources that stopped being stale on this day, for any reason.
9067
+ */
9068
+ cleared: number;
9069
+ /**
9070
+ * Format: int32
9071
+ * @description How many resources were stale at the END of this day — the level, not the flow. It is reconstructed by walking today's live count backwards through the recorded transitions, so it is exact only for the period the audit log covers; days before freshness evaluation first ran on this team read as the earliest known level rather than as zero. The most recent day reports the live count as of the request. The reconstruction is clamped at zero, so on a team whose rows were removed by a project or team deletion — which writes no audit entry — the series can flatten at 0 instead of satisfying stale_total[i] = stale_total[i-1] + marked[i] - cleared[i].
9072
+ */
9073
+ stale_total: number;
9074
+ /**
9075
+ * Format: int32
9076
+ * @description The day's total ACTIVITY, marked + cleared — the sum of the two series, not the level. It is the field the shared time-series chart reads for its per-day total, which is why it is a flow rather than stale_total.
9077
+ */
9078
+ total: number;
9079
+ };
9080
+ FreshnessOverTimeMetricsData: {
9081
+ range: components["schemas"]["FreshnessMetricsRange"];
9082
+ /**
9083
+ * Format: int32
9084
+ * @description Resources marked stale across the whole window.
9085
+ */
9086
+ total_marked: number;
9087
+ /**
9088
+ * Format: int32
9089
+ * @description Resources cleared across the whole window.
9090
+ */
9091
+ total_cleared: number;
9092
+ /** @description One entry per day in the window, oldest first. Serializes as `[]`, never `null`. */
9093
+ counts: components["schemas"]["FreshnessDailyStaleCount"][];
9094
+ };
9095
+ FreshnessOverTimeMetricsResponse: {
9096
+ /** @example success */
9097
+ status: string;
9098
+ /** @example Freshness over-time metrics retrieved successfully */
9099
+ message: string;
9100
+ data: components["schemas"]["FreshnessOverTimeMetricsData"];
9101
+ };
9102
+ /** @description How many of one resource type are stale right now. */
9103
+ FreshnessTypeCount: {
9104
+ resource_type: components["schemas"]["FreshnessRuleResourceType"];
9105
+ /** Format: int32 */
9106
+ count: number;
9107
+ };
9108
+ FreshnessByTypeMetricsData: {
9109
+ /**
9110
+ * Format: int32
9111
+ * @description Total stale resources in the team, across every type.
9112
+ */
9113
+ total_stale: number;
9114
+ /** @description One entry per resource type, always all four, in a stable order — a type with nothing stale reports 0 rather than being omitted, so the chart's bars never move. Serializes as `[]`, never `null`. */
9115
+ counts: components["schemas"]["FreshnessTypeCount"][];
9116
+ };
9117
+ FreshnessByTypeMetricsResponse: {
9118
+ /** @example success */
9119
+ status: string;
9120
+ /** @example Freshness by-type metrics retrieved successfully */
9121
+ message: string;
9122
+ data: components["schemas"]["FreshnessByTypeMetricsData"];
9123
+ };
9124
+ /** @description How many resources are stale right now in one project. `name` and `slug` are carried so the client can label and deep-link the bar without a second request. */
9125
+ FreshnessProjectCount: {
9126
+ /** Format: uuid */
9127
+ project_id: string;
9128
+ name: string;
9129
+ slug: string;
9130
+ /** Format: int32 */
9131
+ count: number;
9132
+ };
9133
+ FreshnessByProjectMetricsData: {
9134
+ /** Format: int32 */
9135
+ total_stale: number;
9136
+ /** @description One entry per project in the team, including projects with nothing stale (0), ordered by count descending then name. Serializes as `[]`, never `null`. */
9137
+ counts: components["schemas"]["FreshnessProjectCount"][];
9138
+ };
9139
+ FreshnessByProjectMetricsResponse: {
9140
+ /** @example success */
9141
+ status: string;
9142
+ /** @example Freshness by-project metrics retrieved successfully */
9143
+ message: string;
9144
+ data: components["schemas"]["FreshnessByProjectMetricsData"];
9145
+ };
9146
+ /** @description How many resources one rule currently marks. Rules have no name, so the defining fields travel with the count for the client to label the bar. */
9147
+ FreshnessRuleImpact: {
9148
+ /** Format: uuid */
9149
+ rule_id: string;
9150
+ /**
9151
+ * Format: uuid
9152
+ * @description The project the rule is scoped to, or null for every project in the team.
9153
+ */
9154
+ project_id: string | null;
9155
+ resource_types: components["schemas"]["FreshnessRuleResourceType"][];
9156
+ /** Format: int32 */
9157
+ threshold_days: number;
9158
+ /** @description A disabled rule reports 0 — it is listed so its absence from the chart is not mistaken for deletion. */
9159
+ enabled: boolean;
9160
+ /** Format: int32 */
9161
+ count: number;
9162
+ };
9163
+ FreshnessByRuleMetricsData: {
9164
+ /**
9165
+ * Format: int32
9166
+ * @description Distinct stale resources in the team. It is NOT the sum of the per-rule counts: a resource matched by two rules is counted once here and once under each rule, because staleness is a union across rules.
9167
+ */
9168
+ total_stale: number;
9169
+ /** @description One entry per rule the team has defined, including rules matching nothing, ordered by count descending then rule id. Serializes as `[]`, never `null`. */
9170
+ counts: components["schemas"]["FreshnessRuleImpact"][];
9171
+ };
9172
+ FreshnessByRuleMetricsResponse: {
9173
+ /** @example success */
9174
+ status: string;
9175
+ /** @example Freshness by-rule metrics retrieved successfully */
9176
+ message: string;
9177
+ data: components["schemas"]["FreshnessByRuleMetricsData"];
9178
+ };
9179
+ /** @description One recorded freshness transition. The log is append-only. */
9180
+ FreshnessAuditEntry: {
9181
+ /** Format: uuid */
9182
+ id: string;
9183
+ resource_type: components["schemas"]["FreshnessRuleResourceType"];
9184
+ /** Format: uuid */
9185
+ resource_id: string;
9186
+ /**
9187
+ * Format: uuid
9188
+ * @description The rule that caused the change, when exactly one did. Null for a reversal (caused by a read or an edit) and for a mark attributable to several rules at once — the resource's own state carries the full set.
9189
+ */
9190
+ rule_id: string | null;
9191
+ /**
9192
+ * @description Whether the resource became stale or stopped being stale.
9193
+ * @enum {string}
9194
+ */
9195
+ action: "marked" | "cleared";
9196
+ /**
9197
+ * @description What caused it — a scheduled evaluation, a read, or an edit.
9198
+ * @enum {string}
9199
+ */
9200
+ reason: "rule_run" | "accessed" | "edited";
9201
+ /** Format: date-time */
9202
+ created_at: string;
9203
+ };
9204
+ /** @description A page of the team's freshness audit log, newest first. */
9205
+ FreshnessAuditListResponse: {
9206
+ /** @description Serializes as `[]` when the page is empty, never `null`. */
9207
+ entries: components["schemas"]["FreshnessAuditEntry"][];
9208
+ /**
9209
+ * @description Total entries in the team's log, ignoring pagination.
9210
+ * @example 142
9211
+ */
9212
+ total_count: number;
9213
+ /**
9214
+ * @description Current page number (1-based)
9215
+ * @example 1
9216
+ */
9217
+ page: number;
9218
+ /**
9219
+ * @description Number of entries per page
9220
+ * @example 20
9221
+ */
9222
+ per_page: number;
9223
+ /**
9224
+ * @description Total number of pages
9225
+ * @example 8
9226
+ */
9227
+ total_pages: number;
9228
+ };
9229
+ /** @description The resource's staleness state. Present only when the resource is stale; absent means fresh. */
9230
+ ResourceFreshnessState: {
9231
+ /**
9232
+ * @description Today the only state a resource can be in while it has freshness state at all. It is modelled as an enum rather than a boolean so a future state can be added without changing the field's type.
9233
+ * @enum {string}
9234
+ */
9235
+ status: "stale";
9236
+ /**
9237
+ * Format: date-time
9238
+ * @description When the resource was FIRST marked stale. It is preserved across re-evaluations that keep it stale, so it is the age a client can show.
9239
+ */
9240
+ since: string;
9241
+ /** @description Every rule that currently marks this resource — staleness is a union across rules, so this answers "why is this stale". Serializes as `[]`, never `null`. */
9242
+ matched_rule_ids: string[];
9243
+ /**
9244
+ * @description What produced the current state.
9245
+ * @enum {string}
9246
+ */
9247
+ reason: "rule_run" | "accessed" | "edited";
9248
+ };
8927
9249
  /** @description The search ranking settings in effect for a team, with enough context for a client to render the whole settings surface from this one response: the effective values, where they came from, the instance defaults to preview a reset against, and the instance-owned candidate cap. */
8928
9250
  TeamSearchSettings: {
8929
9251
  /**
@@ -10814,6 +11136,8 @@ export interface operations {
10814
11136
  listArtifacts: {
10815
11137
  parameters: {
10816
11138
  query?: {
11139
+ /** @description 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. */
11140
+ freshness?: "stale";
10817
11141
  /** @description Filter by project ID */
10818
11142
  project_id?: string;
10819
11143
  /** @description Filter by status */
@@ -10990,6 +11314,8 @@ export interface operations {
10990
11314
  listArtifactsByProject: {
10991
11315
  parameters: {
10992
11316
  query?: {
11317
+ /** @description 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. */
11318
+ freshness?: "stale";
10993
11319
  /** @description Filter by status */
10994
11320
  status?: "active" | "draft" | "archived";
10995
11321
  /** @description Filter by type. An open string matched against the team's registered types (the system defaults work_reports, static_contexts and general, plus any custom types the team has added), not a fixed enum. */
@@ -12058,6 +12384,8 @@ export interface operations {
12058
12384
  listMemories: {
12059
12385
  parameters: {
12060
12386
  query?: {
12387
+ /** @description 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. */
12388
+ freshness?: "stale";
12061
12389
  /** @description Filter memories by project ID */
12062
12390
  project_id?: string;
12063
12391
  /** @description Search in memory text */
@@ -12589,6 +12917,8 @@ export interface operations {
12589
12917
  listSpecLibraries: {
12590
12918
  parameters: {
12591
12919
  query?: {
12920
+ /** @description 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. */
12921
+ freshness?: "stale";
12592
12922
  /** @description Filter by project name */
12593
12923
  project_name?: string;
12594
12924
  /** @description Filter by project ID. On this team-scoped variant the backend reads it only when a project is not already selected via a path parameter (i.e. not on listSpecLibrariesByProject). */
@@ -12783,6 +13113,8 @@ export interface operations {
12783
13113
  listSpecLibrariesByProject: {
12784
13114
  parameters: {
12785
13115
  query?: {
13116
+ /** @description 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. */
13117
+ freshness?: "stale";
12786
13118
  /** @description Filter by status */
12787
13119
  status?: "active" | "expired";
12788
13120
  /** @description Filter by type */
@@ -13250,6 +13582,8 @@ export interface operations {
13250
13582
  listPrompts: {
13251
13583
  parameters: {
13252
13584
  query?: {
13585
+ /** @description 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. */
13586
+ freshness?: "stale";
13253
13587
  /** @description Page number for pagination */
13254
13588
  page?: number;
13255
13589
  /** @description Number of items per page */
@@ -21255,6 +21589,309 @@ export interface operations {
21255
21589
  };
21256
21590
  };
21257
21591
  };
21592
+ getFreshnessOverTimeMetrics: {
21593
+ parameters: {
21594
+ query?: {
21595
+ /** @description The reporting window. Defaults to 30d. */
21596
+ range?: components["schemas"]["FreshnessMetricsRange"];
21597
+ };
21598
+ header?: never;
21599
+ path: {
21600
+ /** @description Team identifier */
21601
+ team_id: string;
21602
+ };
21603
+ cookie?: never;
21604
+ };
21605
+ requestBody?: never;
21606
+ responses: {
21607
+ /** @description Metrics retrieved successfully */
21608
+ 200: {
21609
+ headers: {
21610
+ [name: string]: unknown;
21611
+ };
21612
+ content: {
21613
+ "application/json": components["schemas"]["FreshnessOverTimeMetricsResponse"];
21614
+ };
21615
+ };
21616
+ /** @description Invalid team_id or query parameter */
21617
+ 400: {
21618
+ headers: {
21619
+ [name: string]: unknown;
21620
+ };
21621
+ content: {
21622
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21623
+ };
21624
+ };
21625
+ /** @description Authentication required */
21626
+ 401: {
21627
+ headers: {
21628
+ [name: string]: unknown;
21629
+ };
21630
+ content: {
21631
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21632
+ };
21633
+ };
21634
+ /** @description Caller is not a member of the team */
21635
+ 403: {
21636
+ headers: {
21637
+ [name: string]: unknown;
21638
+ };
21639
+ content: {
21640
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21641
+ };
21642
+ };
21643
+ /** @description Failed to build the team's freshness over-time metrics */
21644
+ 500: {
21645
+ headers: {
21646
+ [name: string]: unknown;
21647
+ };
21648
+ content: {
21649
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21650
+ };
21651
+ };
21652
+ };
21653
+ };
21654
+ getFreshnessByTypeMetrics: {
21655
+ parameters: {
21656
+ query?: never;
21657
+ header?: never;
21658
+ path: {
21659
+ /** @description Team identifier */
21660
+ team_id: string;
21661
+ };
21662
+ cookie?: never;
21663
+ };
21664
+ requestBody?: never;
21665
+ responses: {
21666
+ /** @description Metrics retrieved successfully */
21667
+ 200: {
21668
+ headers: {
21669
+ [name: string]: unknown;
21670
+ };
21671
+ content: {
21672
+ "application/json": components["schemas"]["FreshnessByTypeMetricsResponse"];
21673
+ };
21674
+ };
21675
+ /** @description Invalid team_id or query parameter */
21676
+ 400: {
21677
+ headers: {
21678
+ [name: string]: unknown;
21679
+ };
21680
+ content: {
21681
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21682
+ };
21683
+ };
21684
+ /** @description Authentication required */
21685
+ 401: {
21686
+ headers: {
21687
+ [name: string]: unknown;
21688
+ };
21689
+ content: {
21690
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21691
+ };
21692
+ };
21693
+ /** @description Caller is not a member of the team */
21694
+ 403: {
21695
+ headers: {
21696
+ [name: string]: unknown;
21697
+ };
21698
+ content: {
21699
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21700
+ };
21701
+ };
21702
+ /** @description Failed to build the team's freshness by-type metrics */
21703
+ 500: {
21704
+ headers: {
21705
+ [name: string]: unknown;
21706
+ };
21707
+ content: {
21708
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21709
+ };
21710
+ };
21711
+ };
21712
+ };
21713
+ getFreshnessByProjectMetrics: {
21714
+ parameters: {
21715
+ query?: never;
21716
+ header?: never;
21717
+ path: {
21718
+ /** @description Team identifier */
21719
+ team_id: string;
21720
+ };
21721
+ cookie?: never;
21722
+ };
21723
+ requestBody?: never;
21724
+ responses: {
21725
+ /** @description Metrics retrieved successfully */
21726
+ 200: {
21727
+ headers: {
21728
+ [name: string]: unknown;
21729
+ };
21730
+ content: {
21731
+ "application/json": components["schemas"]["FreshnessByProjectMetricsResponse"];
21732
+ };
21733
+ };
21734
+ /** @description Invalid team_id or query parameter */
21735
+ 400: {
21736
+ headers: {
21737
+ [name: string]: unknown;
21738
+ };
21739
+ content: {
21740
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21741
+ };
21742
+ };
21743
+ /** @description Authentication required */
21744
+ 401: {
21745
+ headers: {
21746
+ [name: string]: unknown;
21747
+ };
21748
+ content: {
21749
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21750
+ };
21751
+ };
21752
+ /** @description Caller is not a member of the team */
21753
+ 403: {
21754
+ headers: {
21755
+ [name: string]: unknown;
21756
+ };
21757
+ content: {
21758
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21759
+ };
21760
+ };
21761
+ /** @description Failed to build the team's freshness by-project metrics */
21762
+ 500: {
21763
+ headers: {
21764
+ [name: string]: unknown;
21765
+ };
21766
+ content: {
21767
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21768
+ };
21769
+ };
21770
+ };
21771
+ };
21772
+ getFreshnessByRuleMetrics: {
21773
+ parameters: {
21774
+ query?: never;
21775
+ header?: never;
21776
+ path: {
21777
+ /** @description Team identifier */
21778
+ team_id: string;
21779
+ };
21780
+ cookie?: never;
21781
+ };
21782
+ requestBody?: never;
21783
+ responses: {
21784
+ /** @description Metrics retrieved successfully */
21785
+ 200: {
21786
+ headers: {
21787
+ [name: string]: unknown;
21788
+ };
21789
+ content: {
21790
+ "application/json": components["schemas"]["FreshnessByRuleMetricsResponse"];
21791
+ };
21792
+ };
21793
+ /** @description Invalid team_id or query parameter */
21794
+ 400: {
21795
+ headers: {
21796
+ [name: string]: unknown;
21797
+ };
21798
+ content: {
21799
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21800
+ };
21801
+ };
21802
+ /** @description Authentication required */
21803
+ 401: {
21804
+ headers: {
21805
+ [name: string]: unknown;
21806
+ };
21807
+ content: {
21808
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21809
+ };
21810
+ };
21811
+ /** @description Caller is not a member of the team */
21812
+ 403: {
21813
+ headers: {
21814
+ [name: string]: unknown;
21815
+ };
21816
+ content: {
21817
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21818
+ };
21819
+ };
21820
+ /** @description Failed to build the team's freshness by-rule metrics */
21821
+ 500: {
21822
+ headers: {
21823
+ [name: string]: unknown;
21824
+ };
21825
+ content: {
21826
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21827
+ };
21828
+ };
21829
+ };
21830
+ };
21831
+ listFreshnessAudit: {
21832
+ parameters: {
21833
+ query?: {
21834
+ /** @description Page number (1-based). The upper bound is not a storage limit — it keeps page * limit inside the range the offset arithmetic can represent, so an absurd page is rejected rather than silently wrapping around to the first one. */
21835
+ page?: number;
21836
+ /** @description Entries per page */
21837
+ limit?: number;
21838
+ };
21839
+ header?: never;
21840
+ path: {
21841
+ /** @description Team identifier */
21842
+ team_id: string;
21843
+ };
21844
+ cookie?: never;
21845
+ };
21846
+ requestBody?: never;
21847
+ responses: {
21848
+ /** @description Audit log retrieved successfully */
21849
+ 200: {
21850
+ headers: {
21851
+ [name: string]: unknown;
21852
+ };
21853
+ content: {
21854
+ "application/json": components["schemas"]["FreshnessAuditListResponse"];
21855
+ };
21856
+ };
21857
+ /** @description Invalid team_id or query parameter */
21858
+ 400: {
21859
+ headers: {
21860
+ [name: string]: unknown;
21861
+ };
21862
+ content: {
21863
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21864
+ };
21865
+ };
21866
+ /** @description Authentication required */
21867
+ 401: {
21868
+ headers: {
21869
+ [name: string]: unknown;
21870
+ };
21871
+ content: {
21872
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21873
+ };
21874
+ };
21875
+ /** @description Caller is not a member of the team */
21876
+ 403: {
21877
+ headers: {
21878
+ [name: string]: unknown;
21879
+ };
21880
+ content: {
21881
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21882
+ };
21883
+ };
21884
+ /** @description Failed to list the team's freshness audit log */
21885
+ 500: {
21886
+ headers: {
21887
+ [name: string]: unknown;
21888
+ };
21889
+ content: {
21890
+ "application/problem+json": components["schemas"]["ErrorResponse"];
21891
+ };
21892
+ };
21893
+ };
21894
+ };
21258
21895
  listEmbeddingProvidersSettings: {
21259
21896
  parameters: {
21260
21897
  query?: never;