@vibexp/api-client 0.58.0 → 0.59.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.
@@ -3599,6 +3599,139 @@ export type MetadataValuesResponse = {
3599
3599
  */
3600
3600
  truncated: boolean;
3601
3601
  };
3602
+ /**
3603
+ * One team's rule for when a resource becomes stale.
3604
+ */
3605
+ export type FreshnessRule = {
3606
+ /**
3607
+ * Rule identifier.
3608
+ */
3609
+ id: string;
3610
+ /**
3611
+ * Team the rule belongs to.
3612
+ */
3613
+ team_id: string;
3614
+ /**
3615
+ * Scopes the rule to a single project. `null` means the rule applies to EVERY project in the team.
3616
+ *
3617
+ */
3618
+ project_id: string | null;
3619
+ /**
3620
+ * Resource types the rule applies to. Never empty.
3621
+ */
3622
+ resource_types: Array<FreshnessRuleResourceType>;
3623
+ /**
3624
+ * Access mediums that count as "accessed" for this rule. An EMPTY array means ANY medium counts — it does not mean "no medium".
3625
+ *
3626
+ */
3627
+ mediums: Array<FreshnessRuleMedium>;
3628
+ /**
3629
+ * Days without a qualifying access after which the resource is stale. Capped at 36500 (100 years), mirroring the search-settings half-life cap: past that the rule can never fire, and the bound keeps the value inside the int32 the column and the wire format use.
3630
+ *
3631
+ */
3632
+ threshold_days: number;
3633
+ /**
3634
+ * Whether evaluation runs apply this rule.
3635
+ */
3636
+ enabled: boolean;
3637
+ created_at: string;
3638
+ updated_at: string;
3639
+ };
3640
+ /**
3641
+ * A resource type a freshness rule can cover.
3642
+ */
3643
+ export type FreshnessRuleResourceType = 'artifact' | 'prompt' | 'blueprint' | 'memory';
3644
+ /**
3645
+ * An access medium that counts as "accessed" for a freshness rule. Note this is narrower than the set of mediums recorded on the access path — `api` accesses are stored but are deliberately not selectable as rule criteria.
3646
+ *
3647
+ */
3648
+ export type FreshnessRuleMedium = 'web' | 'cli' | 'mcp';
3649
+ /**
3650
+ * The team's freshness rules, oldest first.
3651
+ */
3652
+ export type FreshnessRuleListResponse = {
3653
+ /**
3654
+ * Freshness rules. Serializes as `[]` when the team has none, never `null`.
3655
+ */
3656
+ rules: Array<FreshnessRule>;
3657
+ };
3658
+ /**
3659
+ * Create a freshness rule.
3660
+ */
3661
+ export type CreateFreshnessRuleRequest = {
3662
+ /**
3663
+ * Scope to one project; omit or send `null` for every project in the team.
3664
+ */
3665
+ project_id?: string | null;
3666
+ resource_types: Array<FreshnessRuleResourceType>;
3667
+ /**
3668
+ * Omit or send an empty array to match any medium.
3669
+ */
3670
+ mediums?: Array<FreshnessRuleMedium>;
3671
+ threshold_days: number;
3672
+ /**
3673
+ * Defaults to true when omitted.
3674
+ */
3675
+ enabled?: boolean;
3676
+ };
3677
+ /**
3678
+ * Replace a freshness rule in full.
3679
+ */
3680
+ export type UpdateFreshnessRuleRequest = {
3681
+ /**
3682
+ * Scope to one project; `null` means every project in the team.
3683
+ */
3684
+ project_id: string | null;
3685
+ resource_types: Array<FreshnessRuleResourceType>;
3686
+ /**
3687
+ * An empty array matches any medium.
3688
+ */
3689
+ mediums: Array<FreshnessRuleMedium>;
3690
+ threshold_days: number;
3691
+ enabled: boolean;
3692
+ };
3693
+ /**
3694
+ * The tunable freshness-evaluation values, shared by the current settings and the defaults.
3695
+ */
3696
+ export type FreshnessSettingsValues = {
3697
+ /**
3698
+ * How often the team's rules are evaluated. Storage enforces a one-hour floor, matching the scheduler's own floor; the 31536000 (365-day) ceiling keeps the value inside the int32 the column and the wire format use, and an interval longer than a year is indistinguishable from off.
3699
+ *
3700
+ */
3701
+ interval_seconds: number;
3702
+ /**
3703
+ * Whether accessing or editing a stale resource clears its stale state.
3704
+ */
3705
+ reversibility_enabled: boolean;
3706
+ };
3707
+ /**
3708
+ * The freshness settings in effect for a team, with their provenance. A team that has never overridden them reports `source: instance` and the defaults.
3709
+ *
3710
+ */
3711
+ export type TeamFreshnessSettings = {
3712
+ /**
3713
+ * `team` when the team stores its own settings, `instance` when it inherits the defaults.
3714
+ *
3715
+ */
3716
+ source: 'instance' | 'team';
3717
+ interval_seconds: number;
3718
+ reversibility_enabled: boolean;
3719
+ /**
3720
+ * The values a DELETE would restore. Present on every read so clients can preview a reset without a second call.
3721
+ *
3722
+ */
3723
+ defaults: FreshnessSettingsValues;
3724
+ };
3725
+ /**
3726
+ * Override the team's freshness settings.
3727
+ */
3728
+ export type UpdateTeamFreshnessSettingsRequest = {
3729
+ /**
3730
+ * Rejected below 3600 (one hour) or above 31536000 (365 days).
3731
+ */
3732
+ interval_seconds: number;
3733
+ reversibility_enabled: boolean;
3734
+ };
3602
3735
  /**
3603
3736
  * 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.
3604
3737
  *
@@ -11962,6 +12095,281 @@ export type UpdateTeamSearchSettingsResponses = {
11962
12095
  200: TeamSearchSettings;
11963
12096
  };
11964
12097
  export type UpdateTeamSearchSettingsResponse = UpdateTeamSearchSettingsResponses[keyof UpdateTeamSearchSettingsResponses];
12098
+ export type ListFreshnessRulesData = {
12099
+ body?: never;
12100
+ path: {
12101
+ /**
12102
+ * Team identifier
12103
+ */
12104
+ team_id: string;
12105
+ };
12106
+ query?: never;
12107
+ url: '/api/v1/{team_id}/freshness/rules';
12108
+ };
12109
+ export type ListFreshnessRulesErrors = {
12110
+ /**
12111
+ * Invalid team_id
12112
+ */
12113
+ 400: ErrorResponse;
12114
+ /**
12115
+ * Authentication required
12116
+ */
12117
+ 401: ErrorResponse;
12118
+ /**
12119
+ * Caller is not a member of the team
12120
+ */
12121
+ 403: ErrorResponse;
12122
+ /**
12123
+ * Failed to list the team's freshness rules
12124
+ */
12125
+ 500: ErrorResponse;
12126
+ };
12127
+ export type ListFreshnessRulesError = ListFreshnessRulesErrors[keyof ListFreshnessRulesErrors];
12128
+ export type ListFreshnessRulesResponses = {
12129
+ /**
12130
+ * Rules retrieved successfully
12131
+ */
12132
+ 200: FreshnessRuleListResponse;
12133
+ };
12134
+ export type ListFreshnessRulesResponse = ListFreshnessRulesResponses[keyof ListFreshnessRulesResponses];
12135
+ export type CreateFreshnessRuleData = {
12136
+ body: CreateFreshnessRuleRequest;
12137
+ path: {
12138
+ /**
12139
+ * Team identifier
12140
+ */
12141
+ team_id: string;
12142
+ };
12143
+ query?: never;
12144
+ url: '/api/v1/{team_id}/freshness/rules';
12145
+ };
12146
+ export type CreateFreshnessRuleErrors = {
12147
+ /**
12148
+ * Invalid team_id or rule definition
12149
+ */
12150
+ 400: ErrorResponse;
12151
+ /**
12152
+ * Authentication required
12153
+ */
12154
+ 401: ErrorResponse;
12155
+ /**
12156
+ * Caller may not change the team's settings
12157
+ */
12158
+ 403: ErrorResponse;
12159
+ /**
12160
+ * Failed to create the freshness rule
12161
+ */
12162
+ 500: ErrorResponse;
12163
+ };
12164
+ export type CreateFreshnessRuleError = CreateFreshnessRuleErrors[keyof CreateFreshnessRuleErrors];
12165
+ export type CreateFreshnessRuleResponses = {
12166
+ /**
12167
+ * Rule created successfully
12168
+ */
12169
+ 201: FreshnessRule;
12170
+ };
12171
+ export type CreateFreshnessRuleResponse = CreateFreshnessRuleResponses[keyof CreateFreshnessRuleResponses];
12172
+ export type DeleteFreshnessRuleData = {
12173
+ body?: never;
12174
+ path: {
12175
+ /**
12176
+ * Team identifier
12177
+ */
12178
+ team_id: string;
12179
+ /**
12180
+ * Freshness rule identifier
12181
+ */
12182
+ rule_id: string;
12183
+ };
12184
+ query?: never;
12185
+ url: '/api/v1/{team_id}/freshness/rules/{rule_id}';
12186
+ };
12187
+ export type DeleteFreshnessRuleErrors = {
12188
+ /**
12189
+ * Invalid identifiers
12190
+ */
12191
+ 400: ErrorResponse;
12192
+ /**
12193
+ * Authentication required
12194
+ */
12195
+ 401: ErrorResponse;
12196
+ /**
12197
+ * Caller may not change the team's settings
12198
+ */
12199
+ 403: ErrorResponse;
12200
+ /**
12201
+ * No such rule in this team
12202
+ */
12203
+ 404: ErrorResponse;
12204
+ /**
12205
+ * Failed to delete the freshness rule
12206
+ */
12207
+ 500: ErrorResponse;
12208
+ };
12209
+ export type DeleteFreshnessRuleError = DeleteFreshnessRuleErrors[keyof DeleteFreshnessRuleErrors];
12210
+ export type DeleteFreshnessRuleResponses = {
12211
+ /**
12212
+ * Rule deleted (no content)
12213
+ */
12214
+ 204: void;
12215
+ };
12216
+ export type DeleteFreshnessRuleResponse = DeleteFreshnessRuleResponses[keyof DeleteFreshnessRuleResponses];
12217
+ export type UpdateFreshnessRuleData = {
12218
+ body: UpdateFreshnessRuleRequest;
12219
+ path: {
12220
+ /**
12221
+ * Team identifier
12222
+ */
12223
+ team_id: string;
12224
+ /**
12225
+ * Freshness rule identifier
12226
+ */
12227
+ rule_id: string;
12228
+ };
12229
+ query?: never;
12230
+ url: '/api/v1/{team_id}/freshness/rules/{rule_id}';
12231
+ };
12232
+ export type UpdateFreshnessRuleErrors = {
12233
+ /**
12234
+ * Invalid identifiers or rule definition
12235
+ */
12236
+ 400: ErrorResponse;
12237
+ /**
12238
+ * Authentication required
12239
+ */
12240
+ 401: ErrorResponse;
12241
+ /**
12242
+ * Caller may not change the team's settings
12243
+ */
12244
+ 403: ErrorResponse;
12245
+ /**
12246
+ * No such rule in this team
12247
+ */
12248
+ 404: ErrorResponse;
12249
+ /**
12250
+ * Failed to update the freshness rule
12251
+ */
12252
+ 500: ErrorResponse;
12253
+ };
12254
+ export type UpdateFreshnessRuleError = UpdateFreshnessRuleErrors[keyof UpdateFreshnessRuleErrors];
12255
+ export type UpdateFreshnessRuleResponses = {
12256
+ /**
12257
+ * Rule updated successfully
12258
+ */
12259
+ 200: FreshnessRule;
12260
+ };
12261
+ export type UpdateFreshnessRuleResponse = UpdateFreshnessRuleResponses[keyof UpdateFreshnessRuleResponses];
12262
+ export type ResetTeamFreshnessSettingsData = {
12263
+ body?: never;
12264
+ path: {
12265
+ /**
12266
+ * Team identifier
12267
+ */
12268
+ team_id: string;
12269
+ };
12270
+ query?: never;
12271
+ url: '/api/v1/{team_id}/settings/freshness';
12272
+ };
12273
+ export type ResetTeamFreshnessSettingsErrors = {
12274
+ /**
12275
+ * Invalid team_id
12276
+ */
12277
+ 400: ErrorResponse;
12278
+ /**
12279
+ * Authentication required
12280
+ */
12281
+ 401: ErrorResponse;
12282
+ /**
12283
+ * Caller may not change the team's settings
12284
+ */
12285
+ 403: ErrorResponse;
12286
+ /**
12287
+ * Failed to reset the team's freshness settings
12288
+ */
12289
+ 500: ErrorResponse;
12290
+ };
12291
+ export type ResetTeamFreshnessSettingsError = ResetTeamFreshnessSettingsErrors[keyof ResetTeamFreshnessSettingsErrors];
12292
+ export type ResetTeamFreshnessSettingsResponses = {
12293
+ /**
12294
+ * Settings reset (no content); the team now inherits the defaults
12295
+ */
12296
+ 204: void;
12297
+ };
12298
+ export type ResetTeamFreshnessSettingsResponse = ResetTeamFreshnessSettingsResponses[keyof ResetTeamFreshnessSettingsResponses];
12299
+ export type GetTeamFreshnessSettingsData = {
12300
+ body?: never;
12301
+ path: {
12302
+ /**
12303
+ * Team identifier
12304
+ */
12305
+ team_id: string;
12306
+ };
12307
+ query?: never;
12308
+ url: '/api/v1/{team_id}/settings/freshness';
12309
+ };
12310
+ export type GetTeamFreshnessSettingsErrors = {
12311
+ /**
12312
+ * Invalid team_id
12313
+ */
12314
+ 400: ErrorResponse;
12315
+ /**
12316
+ * Authentication required
12317
+ */
12318
+ 401: ErrorResponse;
12319
+ /**
12320
+ * Caller is not a member of the team
12321
+ */
12322
+ 403: ErrorResponse;
12323
+ /**
12324
+ * Failed to read the team's freshness settings
12325
+ */
12326
+ 500: ErrorResponse;
12327
+ };
12328
+ export type GetTeamFreshnessSettingsError = GetTeamFreshnessSettingsErrors[keyof GetTeamFreshnessSettingsErrors];
12329
+ export type GetTeamFreshnessSettingsResponses = {
12330
+ /**
12331
+ * Settings retrieved successfully
12332
+ */
12333
+ 200: TeamFreshnessSettings;
12334
+ };
12335
+ export type GetTeamFreshnessSettingsResponse = GetTeamFreshnessSettingsResponses[keyof GetTeamFreshnessSettingsResponses];
12336
+ export type UpdateTeamFreshnessSettingsData = {
12337
+ body: UpdateTeamFreshnessSettingsRequest;
12338
+ path: {
12339
+ /**
12340
+ * Team identifier
12341
+ */
12342
+ team_id: string;
12343
+ };
12344
+ query?: never;
12345
+ url: '/api/v1/{team_id}/settings/freshness';
12346
+ };
12347
+ export type UpdateTeamFreshnessSettingsErrors = {
12348
+ /**
12349
+ * Invalid team_id or settings
12350
+ */
12351
+ 400: ErrorResponse;
12352
+ /**
12353
+ * Authentication required
12354
+ */
12355
+ 401: ErrorResponse;
12356
+ /**
12357
+ * Caller may not change the team's settings
12358
+ */
12359
+ 403: ErrorResponse;
12360
+ /**
12361
+ * Failed to update the team's freshness settings
12362
+ */
12363
+ 500: ErrorResponse;
12364
+ };
12365
+ export type UpdateTeamFreshnessSettingsError = UpdateTeamFreshnessSettingsErrors[keyof UpdateTeamFreshnessSettingsErrors];
12366
+ export type UpdateTeamFreshnessSettingsResponses = {
12367
+ /**
12368
+ * Settings updated successfully
12369
+ */
12370
+ 200: TeamFreshnessSettings;
12371
+ };
12372
+ export type UpdateTeamFreshnessSettingsResponse = UpdateTeamFreshnessSettingsResponses[keyof UpdateTeamFreshnessSettingsResponses];
11965
12373
  export type ListEmbeddingProvidersSettingsData = {
11966
12374
  body?: never;
11967
12375
  path: {