@vibexp/api-client 0.92.0 → 0.93.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.
@@ -3936,6 +3936,210 @@ export const listAdminInstanceEmailSettingsAudit = (options) => (options?.client
3936
3936
  url: '/api/v1/admin/settings/email/audit',
3937
3937
  ...options
3938
3938
  });
3939
+ /**
3940
+ * Reset the instance search ranking settings to the built-in defaults
3941
+ *
3942
+ * Removes the stored instance search ranking defaults, so the built-in defaults
3943
+ * apply from the next request, and appends one entry (`action: delete`) to
3944
+ * the `search` audit log. Idempotent: with nothing stored it is still a
3945
+ * 204 and writes no audit entry.
3946
+ * Instance-admin only; non-admin and unauthenticated requests receive 404.
3947
+ *
3948
+ */
3949
+ export const resetAdminSearchSettings = (options) => (options?.client ?? client).delete({
3950
+ security: [{
3951
+ key: 'ApiKeyAuth',
3952
+ scheme: 'bearer',
3953
+ type: 'http'
3954
+ }, {
3955
+ in: 'cookie',
3956
+ name: 'vx_session',
3957
+ type: 'apiKey'
3958
+ }],
3959
+ url: '/api/v1/admin/settings/search',
3960
+ ...options
3961
+ });
3962
+ /**
3963
+ * Get the instance search ranking settings
3964
+ *
3965
+ * Returns the instance search ranking defaults in effect, where they come from
3966
+ * (`instance` or `default`), the built-in defaults, the hard bounds for
3967
+ * form validation, how many teams store settings of their own and the
3968
+ * stored row's `version`. Always 200: with nothing stored, `source` is
3969
+ * `default` and `values` equal `built_in_defaults`.
3970
+ * Instance-admin only; non-admin and unauthenticated requests receive 404.
3971
+ *
3972
+ */
3973
+ export const getAdminSearchSettings = (options) => (options?.client ?? client).get({
3974
+ responseType: 'json',
3975
+ security: [{
3976
+ key: 'ApiKeyAuth',
3977
+ scheme: 'bearer',
3978
+ type: 'http'
3979
+ }, {
3980
+ in: 'cookie',
3981
+ name: 'vx_session',
3982
+ type: 'apiKey'
3983
+ }],
3984
+ url: '/api/v1/admin/settings/search',
3985
+ ...options
3986
+ });
3987
+ /**
3988
+ * Replace the instance search ranking settings
3989
+ *
3990
+ * Validates and stores a whole replacement of the instance search ranking
3991
+ * defaults, taking effect on the next request with no restart, and appends
3992
+ * one entry (`action: upsert`) to the `search` audit log in the same
3993
+ * transaction. Pass `expected_version` to reject the save with 409 when
3994
+ * someone else changed the settings since they were read. A body that
3995
+ * omits a value field, sends one as null, or carries an unknown field is
3996
+ * rejected with 400.
3997
+ * Instance-admin only; non-admin and unauthenticated requests receive 404.
3998
+ *
3999
+ */
4000
+ export const updateAdminSearchSettings = (options) => (options.client ?? client).put({
4001
+ responseType: 'json',
4002
+ security: [{
4003
+ key: 'ApiKeyAuth',
4004
+ scheme: 'bearer',
4005
+ type: 'http'
4006
+ }, {
4007
+ in: 'cookie',
4008
+ name: 'vx_session',
4009
+ type: 'apiKey'
4010
+ }],
4011
+ url: '/api/v1/admin/settings/search',
4012
+ ...options,
4013
+ headers: {
4014
+ 'Content-Type': 'application/json',
4015
+ ...options.headers
4016
+ }
4017
+ });
4018
+ /**
4019
+ * List the instance search ranking settings audit log
4020
+ *
4021
+ * Returns one page of the instance search ranking settings' audit log (setting
4022
+ * `search`), newest first, with each actor's display name resolved.
4023
+ * Pass the previous page's `next_cursor` to continue.
4024
+ * Instance-admin only; non-admin and unauthenticated requests receive 404.
4025
+ *
4026
+ */
4027
+ export const listAdminSearchSettingsAudit = (options) => (options?.client ?? client).get({
4028
+ responseType: 'json',
4029
+ security: [{
4030
+ key: 'ApiKeyAuth',
4031
+ scheme: 'bearer',
4032
+ type: 'http'
4033
+ }, {
4034
+ in: 'cookie',
4035
+ name: 'vx_session',
4036
+ type: 'apiKey'
4037
+ }],
4038
+ url: '/api/v1/admin/settings/search/audit',
4039
+ ...options
4040
+ });
4041
+ /**
4042
+ * Reset the instance AI summary settings to the built-in defaults
4043
+ *
4044
+ * Removes the stored instance AI summary defaults and budgets, so the built-in defaults
4045
+ * apply from the next request, and appends one entry (`action: delete`) to
4046
+ * the `ai_summary` audit log. Idempotent: with nothing stored it is still a
4047
+ * 204 and writes no audit entry.
4048
+ * Instance-admin only; non-admin and unauthenticated requests receive 404.
4049
+ *
4050
+ */
4051
+ export const resetAdminAiSummarySettings = (options) => (options?.client ?? client).delete({
4052
+ security: [{
4053
+ key: 'ApiKeyAuth',
4054
+ scheme: 'bearer',
4055
+ type: 'http'
4056
+ }, {
4057
+ in: 'cookie',
4058
+ name: 'vx_session',
4059
+ type: 'apiKey'
4060
+ }],
4061
+ url: '/api/v1/admin/settings/ai-summary',
4062
+ ...options
4063
+ });
4064
+ /**
4065
+ * Get the instance AI summary settings
4066
+ *
4067
+ * Returns the instance AI summary defaults and budgets in effect, where they come from
4068
+ * (`instance` or `default`), the built-in defaults, the hard bounds for
4069
+ * form validation, how many teams store settings of their own and the
4070
+ * stored row's `version`. Always 200: with nothing stored, `source` is
4071
+ * `default` and `values` equal `built_in_defaults`.
4072
+ * Instance-admin only; non-admin and unauthenticated requests receive 404.
4073
+ *
4074
+ */
4075
+ export const getAdminAiSummarySettings = (options) => (options?.client ?? client).get({
4076
+ responseType: 'json',
4077
+ security: [{
4078
+ key: 'ApiKeyAuth',
4079
+ scheme: 'bearer',
4080
+ type: 'http'
4081
+ }, {
4082
+ in: 'cookie',
4083
+ name: 'vx_session',
4084
+ type: 'apiKey'
4085
+ }],
4086
+ url: '/api/v1/admin/settings/ai-summary',
4087
+ ...options
4088
+ });
4089
+ /**
4090
+ * Replace the instance AI summary settings
4091
+ *
4092
+ * Validates and stores a whole replacement of the instance AI summary
4093
+ * defaults and budgets, taking effect on the next request with no restart, and appends
4094
+ * one entry (`action: upsert`) to the `ai_summary` audit log in the same
4095
+ * transaction. Pass `expected_version` to reject the save with 409 when
4096
+ * someone else changed the settings since they were read. A body that
4097
+ * omits a value field, sends one as null, or carries an unknown field is
4098
+ * rejected with 400.
4099
+ * Instance-admin only; non-admin and unauthenticated requests receive 404.
4100
+ *
4101
+ */
4102
+ export const updateAdminAiSummarySettings = (options) => (options.client ?? client).put({
4103
+ responseType: 'json',
4104
+ security: [{
4105
+ key: 'ApiKeyAuth',
4106
+ scheme: 'bearer',
4107
+ type: 'http'
4108
+ }, {
4109
+ in: 'cookie',
4110
+ name: 'vx_session',
4111
+ type: 'apiKey'
4112
+ }],
4113
+ url: '/api/v1/admin/settings/ai-summary',
4114
+ ...options,
4115
+ headers: {
4116
+ 'Content-Type': 'application/json',
4117
+ ...options.headers
4118
+ }
4119
+ });
4120
+ /**
4121
+ * List the instance AI summary settings audit log
4122
+ *
4123
+ * Returns one page of the instance AI summary settings' audit log (setting
4124
+ * `ai_summary`), newest first, with each actor's display name resolved.
4125
+ * Pass the previous page's `next_cursor` to continue.
4126
+ * Instance-admin only; non-admin and unauthenticated requests receive 404.
4127
+ *
4128
+ */
4129
+ export const listAdminAiSummarySettingsAudit = (options) => (options?.client ?? client).get({
4130
+ responseType: 'json',
4131
+ security: [{
4132
+ key: 'ApiKeyAuth',
4133
+ scheme: 'bearer',
4134
+ type: 'http'
4135
+ }, {
4136
+ in: 'cookie',
4137
+ name: 'vx_session',
4138
+ type: 'apiKey'
4139
+ }],
4140
+ url: '/api/v1/admin/settings/ai-summary/audit',
4141
+ ...options
4142
+ });
3939
4143
  /**
3940
4144
  * List a resource's comments
3941
4145
  *
@@ -6236,9 +6236,12 @@ export type AdminInstanceEmailSettings = {
6236
6236
  };
6237
6237
  /**
6238
6238
  * One append-only change to an instance setting. `before` and `after` are
6239
- * REDACTED snapshots: they never contain a credential, only
6240
- * `has_credential` and, on an upsert's `after`, a `secret` marker saying
6241
- * whether the credential was `changed` or `unchanged`.
6239
+ * snapshots of the setting's values, filtered to that setting's allowlisted
6240
+ * keys, and never contain a credential. For `email_provider` they report
6241
+ * only `has_credential` and, on an upsert's `after`, a `secret` marker
6242
+ * saying whether the credential was `changed` or `unchanged`; the `search`
6243
+ * and `ai_summary` snapshots are the settings' values, which hold no
6244
+ * credential.
6242
6245
  *
6243
6246
  */
6244
6247
  export type AdminInstanceSettingsAuditEntry = {
@@ -6249,7 +6252,7 @@ export type AdminInstanceSettingsAuditEntry = {
6249
6252
  /**
6250
6253
  * The instance setting the entry describes.
6251
6254
  */
6252
- setting: string;
6255
+ setting: 'email_provider' | 'search' | 'ai_summary';
6253
6256
  /**
6254
6257
  * `upsert` (created or replaced by an admin), `delete` (removed by an
6255
6258
  * admin) or `import` (the boot-time import from config.yaml, which has no
@@ -6294,6 +6297,222 @@ export type AdminInstanceSettingsAuditPage = {
6294
6297
  */
6295
6298
  next_cursor: string | null;
6296
6299
  };
6300
+ /**
6301
+ * Where the instance values come from: `instance` when an instance admin (or
6302
+ * the boot-time config import) stored them, `default` when nothing is stored
6303
+ * and the built-in defaults apply.
6304
+ *
6305
+ */
6306
+ export type AdminInstanceSettingsSource = 'instance' | 'default';
6307
+ /**
6308
+ * The instance search ranking defaults. Every team without its own search
6309
+ * settings ranks with these; `rank_candidate_cap` is instance-only and applies
6310
+ * to every team.
6311
+ *
6312
+ */
6313
+ export type AdminInstanceSearchValues = {
6314
+ /**
6315
+ * Whether search results are re-ranked by recency.
6316
+ */
6317
+ recency_ranking_enabled: boolean;
6318
+ /**
6319
+ * Weight of semantic relevance. The three weights must not all be zero.
6320
+ */
6321
+ rank_weight_relevance: number;
6322
+ /**
6323
+ * Weight of creation recency.
6324
+ */
6325
+ rank_weight_created: number;
6326
+ /**
6327
+ * Weight of update recency.
6328
+ */
6329
+ rank_weight_updated: number;
6330
+ /**
6331
+ * Recency half-life in days.
6332
+ */
6333
+ rank_half_life_days: number;
6334
+ /**
6335
+ * How many rows are pulled and re-ranked per search.
6336
+ */
6337
+ rank_candidate_cap: number;
6338
+ };
6339
+ /**
6340
+ * The hard bounds the search values are validated against, for form validation.
6341
+ */
6342
+ export type AdminInstanceSearchLimits = {
6343
+ /**
6344
+ * The smallest allowed weight. The three weights must also not all be zero.
6345
+ */
6346
+ rank_weight_min: number;
6347
+ /**
6348
+ * The largest allowed half-life, in days. The half-life must also be positive.
6349
+ */
6350
+ rank_half_life_days_max: number;
6351
+ rank_candidate_cap_min: number;
6352
+ rank_candidate_cap_max: number;
6353
+ };
6354
+ /**
6355
+ * The instance search ranking defaults in effect, where they come from and
6356
+ * how many teams ignore them because they store search settings of their own.
6357
+ *
6358
+ */
6359
+ export type AdminInstanceSearchSettings = {
6360
+ values: AdminInstanceSearchValues;
6361
+ source: AdminInstanceSettingsSource;
6362
+ built_in_defaults: AdminInstanceSearchValues;
6363
+ limits: AdminInstanceSearchLimits;
6364
+ /**
6365
+ * How many teams store search settings of their own, so a change here does not reach them.
6366
+ */
6367
+ teams_with_override: number;
6368
+ /**
6369
+ * When the values were last stored; null when `source` is `default`.
6370
+ */
6371
+ updated_at: string | null;
6372
+ /**
6373
+ * The admin who last stored the values. Null when `source` is `default`,
6374
+ * for the boot-time import, or once that user has been deleted.
6375
+ *
6376
+ */
6377
+ updated_by_user_id: string | null;
6378
+ /**
6379
+ * That admin's display name (or email), when it could be resolved.
6380
+ */
6381
+ updated_by_name: string | null;
6382
+ /**
6383
+ * The stored row's optimistic-lock version; null when nothing is stored.
6384
+ * Send it back as `expected_version` to reject a save that would
6385
+ * overwrite someone else's change.
6386
+ *
6387
+ */
6388
+ version: number | null;
6389
+ };
6390
+ /**
6391
+ * A whole replacement of the instance search ranking defaults. Every value is
6392
+ * required. `expected_version` is optional: when present, the save is
6393
+ * rejected with 409 unless it equals the stored version (and when nothing is
6394
+ * stored, any `expected_version` other than null is a conflict). Omit it for
6395
+ * last-write-wins.
6396
+ *
6397
+ */
6398
+ export type AdminInstanceSearchSettingsUpdate = {
6399
+ recency_ranking_enabled: boolean;
6400
+ rank_weight_relevance: number;
6401
+ rank_weight_created: number;
6402
+ rank_weight_updated: number;
6403
+ rank_half_life_days: number;
6404
+ rank_candidate_cap: number;
6405
+ /**
6406
+ * The `version` the caller last read; omit or null for last-write-wins.
6407
+ */
6408
+ expected_version?: number | null;
6409
+ };
6410
+ /**
6411
+ * How detailed a summary is.
6412
+ */
6413
+ export type AdminInstanceAiSummaryStyle = 'concise' | 'balanced' | 'detailed';
6414
+ /**
6415
+ * The instance AI summary defaults and budgets. `enabled`, `top_n`, `style`
6416
+ * and `max_output_tokens` are the defaults every team without its own AI
6417
+ * summary settings uses; the character budgets and the request timeout are
6418
+ * instance-only and apply to every team.
6419
+ *
6420
+ */
6421
+ export type AdminInstanceAiSummaryValues = {
6422
+ enabled: boolean;
6423
+ /**
6424
+ * How many search results a summary reads.
6425
+ */
6426
+ top_n: number;
6427
+ style: AdminInstanceAiSummaryStyle;
6428
+ max_output_tokens: number;
6429
+ /**
6430
+ * How many characters of each document a summary reads.
6431
+ */
6432
+ per_document_chars: number;
6433
+ /**
6434
+ * The total character budget of one summary's context; at least `per_document_chars`.
6435
+ */
6436
+ total_context_chars: number;
6437
+ /**
6438
+ * The summary request timeout, in milliseconds.
6439
+ */
6440
+ request_timeout_ms: number;
6441
+ };
6442
+ /**
6443
+ * The hard bounds the AI summary values are validated against, for form validation.
6444
+ */
6445
+ export type AdminInstanceAiSummaryLimits = {
6446
+ top_n_min: number;
6447
+ top_n_max: number;
6448
+ max_output_tokens_min: number;
6449
+ max_output_tokens_max: number;
6450
+ /**
6451
+ * The smallest allowed character budget. `total_context_chars` must also be at least `per_document_chars`.
6452
+ */
6453
+ chars_min: number;
6454
+ chars_max: number;
6455
+ request_timeout_ms_min: number;
6456
+ request_timeout_ms_max: number;
6457
+ };
6458
+ /**
6459
+ * The instance AI summary defaults in effect, where they come from and how
6460
+ * many teams ignore the defaults because they store AI summary settings of
6461
+ * their own. The instance-only budgets reach every team regardless.
6462
+ *
6463
+ */
6464
+ export type AdminInstanceAiSummarySettings = {
6465
+ values: AdminInstanceAiSummaryValues;
6466
+ source: AdminInstanceSettingsSource;
6467
+ built_in_defaults: AdminInstanceAiSummaryValues;
6468
+ limits: AdminInstanceAiSummaryLimits;
6469
+ /**
6470
+ * How many teams store AI summary settings of their own, so a change to the team defaults does not reach them.
6471
+ */
6472
+ teams_with_override: number;
6473
+ /**
6474
+ * When the values were last stored; null when `source` is `default`.
6475
+ */
6476
+ updated_at: string | null;
6477
+ /**
6478
+ * The admin who last stored the values. Null when `source` is `default`,
6479
+ * for the boot-time import, or once that user has been deleted.
6480
+ *
6481
+ */
6482
+ updated_by_user_id: string | null;
6483
+ /**
6484
+ * That admin's display name (or email), when it could be resolved.
6485
+ */
6486
+ updated_by_name: string | null;
6487
+ /**
6488
+ * The stored row's optimistic-lock version; null when nothing is stored.
6489
+ * Send it back as `expected_version` to reject a save that would
6490
+ * overwrite someone else's change.
6491
+ *
6492
+ */
6493
+ version: number | null;
6494
+ };
6495
+ /**
6496
+ * A whole replacement of the instance AI summary settings. Every value is
6497
+ * required. `expected_version` is optional: when present, the save is
6498
+ * rejected with 409 unless it equals the stored version (and when nothing is
6499
+ * stored, any `expected_version` other than null is a conflict). Omit it for
6500
+ * last-write-wins.
6501
+ *
6502
+ */
6503
+ export type AdminInstanceAiSummarySettingsUpdate = {
6504
+ enabled: boolean;
6505
+ top_n: number;
6506
+ style: AdminInstanceAiSummaryStyle;
6507
+ max_output_tokens: number;
6508
+ per_document_chars: number;
6509
+ total_context_chars: number;
6510
+ request_timeout_ms: number;
6511
+ /**
6512
+ * The `version` the caller last read; omit or null for last-write-wins.
6513
+ */
6514
+ expected_version?: number | null;
6515
+ };
6297
6516
  export type ProjectResponse = Project & {
6298
6517
  /**
6299
6518
  * Whether the project's git URL matches a repository accessible via the team's GitHub App installation
@@ -14991,6 +15210,248 @@ export type ListAdminInstanceEmailSettingsAuditResponses = {
14991
15210
  200: AdminInstanceSettingsAuditPage;
14992
15211
  };
14993
15212
  export type ListAdminInstanceEmailSettingsAuditResponse = ListAdminInstanceEmailSettingsAuditResponses[keyof ListAdminInstanceEmailSettingsAuditResponses];
15213
+ export type ResetAdminSearchSettingsData = {
15214
+ body?: never;
15215
+ path?: never;
15216
+ query?: never;
15217
+ url: '/api/v1/admin/settings/search';
15218
+ };
15219
+ export type ResetAdminSearchSettingsErrors = {
15220
+ /**
15221
+ * Not found — the caller is not an instance admin
15222
+ */
15223
+ 404: ErrorResponse;
15224
+ /**
15225
+ * Internal server error
15226
+ */
15227
+ 500: ErrorResponse;
15228
+ };
15229
+ export type ResetAdminSearchSettingsError = ResetAdminSearchSettingsErrors[keyof ResetAdminSearchSettingsErrors];
15230
+ export type ResetAdminSearchSettingsResponses = {
15231
+ /**
15232
+ * The built-in defaults now apply
15233
+ */
15234
+ 204: void;
15235
+ };
15236
+ export type ResetAdminSearchSettingsResponse = ResetAdminSearchSettingsResponses[keyof ResetAdminSearchSettingsResponses];
15237
+ export type GetAdminSearchSettingsData = {
15238
+ body?: never;
15239
+ path?: never;
15240
+ query?: never;
15241
+ url: '/api/v1/admin/settings/search';
15242
+ };
15243
+ export type GetAdminSearchSettingsErrors = {
15244
+ /**
15245
+ * Not found — the caller is not an instance admin
15246
+ */
15247
+ 404: ErrorResponse;
15248
+ /**
15249
+ * Internal server error
15250
+ */
15251
+ 500: ErrorResponse;
15252
+ };
15253
+ export type GetAdminSearchSettingsError = GetAdminSearchSettingsErrors[keyof GetAdminSearchSettingsErrors];
15254
+ export type GetAdminSearchSettingsResponses = {
15255
+ /**
15256
+ * The instance search ranking settings
15257
+ */
15258
+ 200: AdminInstanceSearchSettings;
15259
+ };
15260
+ export type GetAdminSearchSettingsResponse = GetAdminSearchSettingsResponses[keyof GetAdminSearchSettingsResponses];
15261
+ export type UpdateAdminSearchSettingsData = {
15262
+ body: AdminInstanceSearchSettingsUpdate;
15263
+ path?: never;
15264
+ query?: never;
15265
+ url: '/api/v1/admin/settings/search';
15266
+ };
15267
+ export type UpdateAdminSearchSettingsErrors = {
15268
+ /**
15269
+ * Bad request — a value is out of bounds (`INSTANCE_SETTINGS_VALIDATION_FAILED`,
15270
+ * with `validation_errors` naming each offending field), or the body is
15271
+ * malformed, omits or nulls a value field (every value is required), or
15272
+ * carries an unknown field
15273
+ *
15274
+ */
15275
+ 400: ErrorResponse;
15276
+ /**
15277
+ * Not found — the caller is not an instance admin
15278
+ */
15279
+ 404: ErrorResponse;
15280
+ /**
15281
+ * Conflict — `expected_version` does not match the stored version (`INSTANCE_SETTINGS_VERSION_CONFLICT`); nothing was changed
15282
+ */
15283
+ 409: ErrorResponse;
15284
+ /**
15285
+ * Internal server error
15286
+ */
15287
+ 500: ErrorResponse;
15288
+ };
15289
+ export type UpdateAdminSearchSettingsError = UpdateAdminSearchSettingsErrors[keyof UpdateAdminSearchSettingsErrors];
15290
+ export type UpdateAdminSearchSettingsResponses = {
15291
+ /**
15292
+ * The stored settings (`source` is `instance`)
15293
+ */
15294
+ 200: AdminInstanceSearchSettings;
15295
+ };
15296
+ export type UpdateAdminSearchSettingsResponse = UpdateAdminSearchSettingsResponses[keyof UpdateAdminSearchSettingsResponses];
15297
+ export type ListAdminSearchSettingsAuditData = {
15298
+ body?: never;
15299
+ path?: never;
15300
+ query?: {
15301
+ /**
15302
+ * Opaque cursor from a previous page's `next_cursor`.
15303
+ */
15304
+ cursor?: string;
15305
+ /**
15306
+ * Page size.
15307
+ */
15308
+ limit?: number;
15309
+ };
15310
+ url: '/api/v1/admin/settings/search/audit';
15311
+ };
15312
+ export type ListAdminSearchSettingsAuditErrors = {
15313
+ /**
15314
+ * Bad request — malformed cursor, or `limit` out of range
15315
+ */
15316
+ 400: ErrorResponse;
15317
+ /**
15318
+ * Not found — the caller is not an instance admin
15319
+ */
15320
+ 404: ErrorResponse;
15321
+ /**
15322
+ * Internal server error
15323
+ */
15324
+ 500: ErrorResponse;
15325
+ };
15326
+ export type ListAdminSearchSettingsAuditError = ListAdminSearchSettingsAuditErrors[keyof ListAdminSearchSettingsAuditErrors];
15327
+ export type ListAdminSearchSettingsAuditResponses = {
15328
+ /**
15329
+ * One page of audit entries, newest first
15330
+ */
15331
+ 200: AdminInstanceSettingsAuditPage;
15332
+ };
15333
+ export type ListAdminSearchSettingsAuditResponse = ListAdminSearchSettingsAuditResponses[keyof ListAdminSearchSettingsAuditResponses];
15334
+ export type ResetAdminAiSummarySettingsData = {
15335
+ body?: never;
15336
+ path?: never;
15337
+ query?: never;
15338
+ url: '/api/v1/admin/settings/ai-summary';
15339
+ };
15340
+ export type ResetAdminAiSummarySettingsErrors = {
15341
+ /**
15342
+ * Not found — the caller is not an instance admin
15343
+ */
15344
+ 404: ErrorResponse;
15345
+ /**
15346
+ * Internal server error
15347
+ */
15348
+ 500: ErrorResponse;
15349
+ };
15350
+ export type ResetAdminAiSummarySettingsError = ResetAdminAiSummarySettingsErrors[keyof ResetAdminAiSummarySettingsErrors];
15351
+ export type ResetAdminAiSummarySettingsResponses = {
15352
+ /**
15353
+ * The built-in defaults now apply
15354
+ */
15355
+ 204: void;
15356
+ };
15357
+ export type ResetAdminAiSummarySettingsResponse = ResetAdminAiSummarySettingsResponses[keyof ResetAdminAiSummarySettingsResponses];
15358
+ export type GetAdminAiSummarySettingsData = {
15359
+ body?: never;
15360
+ path?: never;
15361
+ query?: never;
15362
+ url: '/api/v1/admin/settings/ai-summary';
15363
+ };
15364
+ export type GetAdminAiSummarySettingsErrors = {
15365
+ /**
15366
+ * Not found — the caller is not an instance admin
15367
+ */
15368
+ 404: ErrorResponse;
15369
+ /**
15370
+ * Internal server error
15371
+ */
15372
+ 500: ErrorResponse;
15373
+ };
15374
+ export type GetAdminAiSummarySettingsError = GetAdminAiSummarySettingsErrors[keyof GetAdminAiSummarySettingsErrors];
15375
+ export type GetAdminAiSummarySettingsResponses = {
15376
+ /**
15377
+ * The instance AI summary settings
15378
+ */
15379
+ 200: AdminInstanceAiSummarySettings;
15380
+ };
15381
+ export type GetAdminAiSummarySettingsResponse = GetAdminAiSummarySettingsResponses[keyof GetAdminAiSummarySettingsResponses];
15382
+ export type UpdateAdminAiSummarySettingsData = {
15383
+ body: AdminInstanceAiSummarySettingsUpdate;
15384
+ path?: never;
15385
+ query?: never;
15386
+ url: '/api/v1/admin/settings/ai-summary';
15387
+ };
15388
+ export type UpdateAdminAiSummarySettingsErrors = {
15389
+ /**
15390
+ * Bad request — a value is out of bounds (`INSTANCE_SETTINGS_VALIDATION_FAILED`,
15391
+ * with `validation_errors` naming each offending field), or the body is
15392
+ * malformed, omits or nulls a value field (every value is required), or
15393
+ * carries an unknown field
15394
+ *
15395
+ */
15396
+ 400: ErrorResponse;
15397
+ /**
15398
+ * Not found — the caller is not an instance admin
15399
+ */
15400
+ 404: ErrorResponse;
15401
+ /**
15402
+ * Conflict — `expected_version` does not match the stored version (`INSTANCE_SETTINGS_VERSION_CONFLICT`); nothing was changed
15403
+ */
15404
+ 409: ErrorResponse;
15405
+ /**
15406
+ * Internal server error
15407
+ */
15408
+ 500: ErrorResponse;
15409
+ };
15410
+ export type UpdateAdminAiSummarySettingsError = UpdateAdminAiSummarySettingsErrors[keyof UpdateAdminAiSummarySettingsErrors];
15411
+ export type UpdateAdminAiSummarySettingsResponses = {
15412
+ /**
15413
+ * The stored settings (`source` is `instance`)
15414
+ */
15415
+ 200: AdminInstanceAiSummarySettings;
15416
+ };
15417
+ export type UpdateAdminAiSummarySettingsResponse = UpdateAdminAiSummarySettingsResponses[keyof UpdateAdminAiSummarySettingsResponses];
15418
+ export type ListAdminAiSummarySettingsAuditData = {
15419
+ body?: never;
15420
+ path?: never;
15421
+ query?: {
15422
+ /**
15423
+ * Opaque cursor from a previous page's `next_cursor`.
15424
+ */
15425
+ cursor?: string;
15426
+ /**
15427
+ * Page size.
15428
+ */
15429
+ limit?: number;
15430
+ };
15431
+ url: '/api/v1/admin/settings/ai-summary/audit';
15432
+ };
15433
+ export type ListAdminAiSummarySettingsAuditErrors = {
15434
+ /**
15435
+ * Bad request — malformed cursor, or `limit` out of range
15436
+ */
15437
+ 400: ErrorResponse;
15438
+ /**
15439
+ * Not found — the caller is not an instance admin
15440
+ */
15441
+ 404: ErrorResponse;
15442
+ /**
15443
+ * Internal server error
15444
+ */
15445
+ 500: ErrorResponse;
15446
+ };
15447
+ export type ListAdminAiSummarySettingsAuditError = ListAdminAiSummarySettingsAuditErrors[keyof ListAdminAiSummarySettingsAuditErrors];
15448
+ export type ListAdminAiSummarySettingsAuditResponses = {
15449
+ /**
15450
+ * One page of audit entries, newest first
15451
+ */
15452
+ 200: AdminInstanceSettingsAuditPage;
15453
+ };
15454
+ export type ListAdminAiSummarySettingsAuditResponse = ListAdminAiSummarySettingsAuditResponses[keyof ListAdminAiSummarySettingsAuditResponses];
14994
15455
  export type ListCommentsData = {
14995
15456
  body?: never;
14996
15457
  path: {