abliteration 0.1.5 → 0.1.7

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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -0
  3. data/docs/DeletionSummary.md +28 -0
  4. data/docs/DeletionSummaryTimelineInner.md +20 -0
  5. data/docs/DeletionSummaryTopByDownloadsInner.md +24 -0
  6. data/docs/DelistedModel.md +30 -0
  7. data/docs/GetHistoricalDeletionSummary200Response.md +32 -0
  8. data/docs/HistoricalDeletion.md +28 -0
  9. data/docs/ListDelistedModels200Response.md +32 -0
  10. data/docs/ListHistoricalDeletions200Response.md +32 -0
  11. data/docs/ModelDetail.md +4 -0
  12. data/docs/ModelSummary.md +5 -1
  13. data/docs/ModelsApi.md +229 -2
  14. data/lib/abliteration/api/models_api.rb +245 -4
  15. data/lib/abliteration/models/deletion_summary.rb +202 -0
  16. data/lib/abliteration/models/deletion_summary_timeline_inner.rb +156 -0
  17. data/lib/abliteration/models/deletion_summary_top_by_downloads_inner.rb +174 -0
  18. data/lib/abliteration/models/delisted_model.rb +206 -0
  19. data/lib/abliteration/models/get_historical_deletion_summary200_response.rb +384 -0
  20. data/lib/abliteration/models/historical_deletion.rb +197 -0
  21. data/lib/abliteration/models/list_delisted_models200_response.rb +386 -0
  22. data/lib/abliteration/models/list_historical_deletions200_response.rb +386 -0
  23. data/lib/abliteration/models/model_detail.rb +23 -1
  24. data/lib/abliteration/models/model_summary.rb +27 -5
  25. data/lib/abliteration/version.rb +1 -1
  26. data/lib/abliteration.rb +8 -0
  27. data/spec/models/deletion_summary_spec.rb +66 -0
  28. data/spec/models/deletion_summary_timeline_inner_spec.rb +42 -0
  29. data/spec/models/deletion_summary_top_by_downloads_inner_spec.rb +54 -0
  30. data/spec/models/delisted_model_spec.rb +72 -0
  31. data/spec/models/get_historical_deletion_summary200_response_spec.rb +82 -0
  32. data/spec/models/historical_deletion_spec.rb +66 -0
  33. data/spec/models/list_delisted_models200_response_spec.rb +82 -0
  34. data/spec/models/list_historical_deletions200_response_spec.rb +82 -0
  35. metadata +34 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9f88d80e1a99e3b8373ec35c02986ed37ccca49626668d3e27bd52bfe405cf8b
4
- data.tar.gz: b886954f040d4b73d01c47c54ab53ff3940e6db9d74088bb64c4ba63ae177214
3
+ metadata.gz: 22dcd3b342509cdc83410548a8f7d6aa975cd5ff6ea8dd7752cdff63a57c15ae
4
+ data.tar.gz: '083faff3655e6a1721c87f23c92a80f28b3c4565c33f06ba1313af85417345ca'
5
5
  SHA512:
6
- metadata.gz: e558fb52c8c013629b8e0fbc417b9154383eb560a3091cf4d225b95253051b6030c6d9407e8948840dfd80c1c33a8f91c46f74d96273c333a0e02029b0c74253
7
- data.tar.gz: 050e783acb4be82d97a84b64cc9e9677bcd0bae6388e104d92015ac19d8d3540947c953e813e5be9d6ab14a1d8490cf9af1188108278187a05a19adea9d6b013
6
+ metadata.gz: 67056fce0457a1e0dc6b5ad116b24a9c222622646a205926308af85342d5f5faa15514fd6e66100914add28fc414996a343139e0ad19c50afe8182420a8f7ba1
7
+ data.tar.gz: 5c1b5586a094f530eaaac3ba39a8af5a5fb156d53871b4a87ca6f1830d23731454775029d6208107bf731cbc5b9ca8591838d422b124ff4c2a93eb4da0b19d67
data/README.md CHANGED
@@ -97,7 +97,10 @@ Class | Method | HTTP request | Description
97
97
  *Abliteration::IndicesApi* | [**list_indices**](docs/IndicesApi.md#list_indices) | **GET** /api/v1/indices | All four indices
98
98
  *Abliteration::MethodsApi* | [**get_method**](docs/MethodsApi.md#get_method) | **GET** /api/v1/methods/{id} | Get one method
99
99
  *Abliteration::MethodsApi* | [**list_methods**](docs/MethodsApi.md#list_methods) | **GET** /api/v1/methods | List the method taxonomy
100
+ *Abliteration::ModelsApi* | [**get_historical_deletion_summary**](docs/ModelsApi.md#get_historical_deletion_summary) | **GET** /api/v1/models/historical-deletions/summary | Historical deletions — aggregate summary
100
101
  *Abliteration::ModelsApi* | [**get_model**](docs/ModelsApi.md#get_model) | **GET** /api/v1/models/{id} | Get one model
102
+ *Abliteration::ModelsApi* | [**list_delisted_models**](docs/ModelsApi.md#list_delisted_models) | **GET** /api/v1/models/delisted | List delisted models (change stream)
103
+ *Abliteration::ModelsApi* | [**list_historical_deletions**](docs/ModelsApi.md#list_historical_deletions) | **GET** /api/v1/models/historical-deletions/list | Historical deletions — paged list
101
104
  *Abliteration::ModelsApi* | [**list_models**](docs/ModelsApi.md#list_models) | **GET** /api/v1/models | List models
102
105
  *Abliteration::TimelineApi* | [**list_timeline**](docs/TimelineApi.md#list_timeline) | **GET** /api/v1/timeline | Curated field events
103
106
 
@@ -109,18 +112,26 @@ Class | Method | HTTP request | Description
109
112
  - [Abliteration::DaiPoint](docs/DaiPoint.md)
110
113
  - [Abliteration::Dataset](docs/Dataset.md)
111
114
  - [Abliteration::DatasetDetail](docs/DatasetDetail.md)
115
+ - [Abliteration::DeletionSummary](docs/DeletionSummary.md)
116
+ - [Abliteration::DeletionSummaryTimelineInner](docs/DeletionSummaryTimelineInner.md)
117
+ - [Abliteration::DeletionSummaryTopByDownloadsInner](docs/DeletionSummaryTopByDownloadsInner.md)
118
+ - [Abliteration::DelistedModel](docs/DelistedModel.md)
112
119
  - [Abliteration::Envelope](docs/Envelope.md)
113
120
  - [Abliteration::Error](docs/Error.md)
114
121
  - [Abliteration::Event](docs/Event.md)
115
122
  - [Abliteration::GetAuthor200Response](docs/GetAuthor200Response.md)
116
123
  - [Abliteration::GetDataset200Response](docs/GetDataset200Response.md)
124
+ - [Abliteration::GetHistoricalDeletionSummary200Response](docs/GetHistoricalDeletionSummary200Response.md)
117
125
  - [Abliteration::GetIndex200Response](docs/GetIndex200Response.md)
118
126
  - [Abliteration::GetMethod200Response](docs/GetMethod200Response.md)
119
127
  - [Abliteration::GetModel200Response](docs/GetModel200Response.md)
128
+ - [Abliteration::HistoricalDeletion](docs/HistoricalDeletion.md)
120
129
  - [Abliteration::Index](docs/Index.md)
121
130
  - [Abliteration::IndexDetail](docs/IndexDetail.md)
122
131
  - [Abliteration::ListAuthors200Response](docs/ListAuthors200Response.md)
123
132
  - [Abliteration::ListDatasets200Response](docs/ListDatasets200Response.md)
133
+ - [Abliteration::ListDelistedModels200Response](docs/ListDelistedModels200Response.md)
134
+ - [Abliteration::ListHistoricalDeletions200Response](docs/ListHistoricalDeletions200Response.md)
124
135
  - [Abliteration::ListIndices200Response](docs/ListIndices200Response.md)
125
136
  - [Abliteration::ListMethods200Response](docs/ListMethods200Response.md)
126
137
  - [Abliteration::ListModels200Response](docs/ListModels200Response.md)
@@ -0,0 +1,28 @@
1
+ # Abliteration::DeletionSummary
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **total_ever_seen** | **Integer** | Live catalog size plus historical deletions. | [optional] |
8
+ | **total_deleted** | **Integer** | | [optional] |
9
+ | **deletion_rate_pct** | **Float** | Percentage of ever-seen models that are now gone. | [optional] |
10
+ | **avg_months_alive** | **Float** | Average lifespan of deleted models, in months. | [optional] |
11
+ | **timeline** | [**Array<DeletionSummaryTimelineInner>**](DeletionSummaryTimelineInner.md) | Deletions grouped by last_seen_month, ascending. | [optional] |
12
+ | **top_by_downloads** | [**Array<DeletionSummaryTopByDownloadsInner>**](DeletionSummaryTopByDownloadsInner.md) | Top-10 biggest casualties by peak downloads. | [optional] |
13
+
14
+ ## Example
15
+
16
+ ```ruby
17
+ require 'abliteration'
18
+
19
+ instance = Abliteration::DeletionSummary.new(
20
+ total_ever_seen: null,
21
+ total_deleted: null,
22
+ deletion_rate_pct: null,
23
+ avg_months_alive: null,
24
+ timeline: null,
25
+ top_by_downloads: null
26
+ )
27
+ ```
28
+
@@ -0,0 +1,20 @@
1
+ # Abliteration::DeletionSummaryTimelineInner
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **month** | **String** | | [optional] |
8
+ | **count** | **Integer** | | [optional] |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'abliteration'
14
+
15
+ instance = Abliteration::DeletionSummaryTimelineInner.new(
16
+ month: null,
17
+ count: null
18
+ )
19
+ ```
20
+
@@ -0,0 +1,24 @@
1
+ # Abliteration::DeletionSummaryTopByDownloadsInner
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **id** | **String** | | [optional] |
8
+ | **peak_downloads** | **Integer** | | [optional] |
9
+ | **last_seen_month** | **String** | | [optional] |
10
+ | **months_alive** | **Integer** | | [optional] |
11
+
12
+ ## Example
13
+
14
+ ```ruby
15
+ require 'abliteration'
16
+
17
+ instance = Abliteration::DeletionSummaryTopByDownloadsInner.new(
18
+ id: null,
19
+ peak_downloads: null,
20
+ last_seen_month: null,
21
+ months_alive: null
22
+ )
23
+ ```
24
+
@@ -0,0 +1,30 @@
1
+ # Abliteration::DelistedModel
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **id** | **String** | | [optional] |
8
+ | **author** | **String** | | [optional] |
9
+ | **family** | **String** | | [optional] |
10
+ | **params_b** | **Float** | | [optional] |
11
+ | **downloads** | **Integer** | Downloads at the moment the model was last visible on HF. Not a live counter. | [optional] |
12
+ | **last_seen_at** | **String** | ISO-8601 timestamp of the last successful Hub observation. Approximately when the model died. | [optional] |
13
+ | **days_since_gone** | **Integer** | Whole days between last_seen_at and now, computed server-side for convenience. | [optional] |
14
+
15
+ ## Example
16
+
17
+ ```ruby
18
+ require 'abliteration'
19
+
20
+ instance = Abliteration::DelistedModel.new(
21
+ id: null,
22
+ author: null,
23
+ family: null,
24
+ params_b: null,
25
+ downloads: null,
26
+ last_seen_at: null,
27
+ days_since_gone: null
28
+ )
29
+ ```
30
+
@@ -0,0 +1,32 @@
1
+ # Abliteration::GetHistoricalDeletionSummary200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **data** | [**DeletionSummary**](DeletionSummary.md) | | |
8
+ | **cost** | **Integer** | Credits this call costs. | |
9
+ | **credits_remaining** | **Integer** | Wallet balance after the call. Unchanged while metering is preview. | |
10
+ | **rate_limit_limit** | **Integer** | Ceiling for the current window. Also returned as X-RateLimit-Limit. | |
11
+ | **rate_limit_remaining** | **Integer** | Calls left in the current window for this key. Also returned as X-RateLimit-Remaining. | |
12
+ | **rate_limit_reset** | **Integer** | Unix seconds at which the window resets to full ceiling. Also returned as X-RateLimit-Reset. | |
13
+ | **metering** | **String** | Whether cost was actually deducted. | |
14
+ | **request_id** | **String** | Also returned in the x-request-id header. | |
15
+
16
+ ## Example
17
+
18
+ ```ruby
19
+ require 'abliteration'
20
+
21
+ instance = Abliteration::GetHistoricalDeletionSummary200Response.new(
22
+ data: null,
23
+ cost: null,
24
+ credits_remaining: null,
25
+ rate_limit_limit: null,
26
+ rate_limit_remaining: null,
27
+ rate_limit_reset: null,
28
+ metering: null,
29
+ request_id: null
30
+ )
31
+ ```
32
+
@@ -0,0 +1,28 @@
1
+ # Abliteration::HistoricalDeletion
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **id** | **String** | | [optional] |
8
+ | **first_seen_month** | **String** | ISO YYYY-MM of the earliest snapshot the model appears in. | [optional] |
9
+ | **last_seen_month** | **String** | ISO YYYY-MM of the final snapshot before deletion. | [optional] |
10
+ | **total_months_alive** | **Integer** | Whole months between first and last observation. | [optional] |
11
+ | **peak_downloads** | **Integer** | Highest downloads count observed during the model's lifetime. | [optional] |
12
+ | **created_at** | **String** | ISO-8601 timestamp the model was originally created on HF (from the frozen snapshot). | [optional] |
13
+
14
+ ## Example
15
+
16
+ ```ruby
17
+ require 'abliteration'
18
+
19
+ instance = Abliteration::HistoricalDeletion.new(
20
+ id: null,
21
+ first_seen_month: null,
22
+ last_seen_month: null,
23
+ total_months_alive: null,
24
+ peak_downloads: null,
25
+ created_at: null
26
+ )
27
+ ```
28
+
@@ -0,0 +1,32 @@
1
+ # Abliteration::ListDelistedModels200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **data** | [**Array<DelistedModel>**](DelistedModel.md) | | |
8
+ | **cost** | **Integer** | Credits this call costs. | |
9
+ | **credits_remaining** | **Integer** | Wallet balance after the call. Unchanged while metering is preview. | |
10
+ | **rate_limit_limit** | **Integer** | Ceiling for the current window. Also returned as X-RateLimit-Limit. | |
11
+ | **rate_limit_remaining** | **Integer** | Calls left in the current window for this key. Also returned as X-RateLimit-Remaining. | |
12
+ | **rate_limit_reset** | **Integer** | Unix seconds at which the window resets to full ceiling. Also returned as X-RateLimit-Reset. | |
13
+ | **metering** | **String** | Whether cost was actually deducted. | |
14
+ | **request_id** | **String** | Also returned in the x-request-id header. | |
15
+
16
+ ## Example
17
+
18
+ ```ruby
19
+ require 'abliteration'
20
+
21
+ instance = Abliteration::ListDelistedModels200Response.new(
22
+ data: null,
23
+ cost: null,
24
+ credits_remaining: null,
25
+ rate_limit_limit: null,
26
+ rate_limit_remaining: null,
27
+ rate_limit_reset: null,
28
+ metering: null,
29
+ request_id: null
30
+ )
31
+ ```
32
+
@@ -0,0 +1,32 @@
1
+ # Abliteration::ListHistoricalDeletions200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **data** | [**Array<HistoricalDeletion>**](HistoricalDeletion.md) | | |
8
+ | **cost** | **Integer** | Credits this call costs. | |
9
+ | **credits_remaining** | **Integer** | Wallet balance after the call. Unchanged while metering is preview. | |
10
+ | **rate_limit_limit** | **Integer** | Ceiling for the current window. Also returned as X-RateLimit-Limit. | |
11
+ | **rate_limit_remaining** | **Integer** | Calls left in the current window for this key. Also returned as X-RateLimit-Remaining. | |
12
+ | **rate_limit_reset** | **Integer** | Unix seconds at which the window resets to full ceiling. Also returned as X-RateLimit-Reset. | |
13
+ | **metering** | **String** | Whether cost was actually deducted. | |
14
+ | **request_id** | **String** | Also returned in the x-request-id header. | |
15
+
16
+ ## Example
17
+
18
+ ```ruby
19
+ require 'abliteration'
20
+
21
+ instance = Abliteration::ListHistoricalDeletions200Response.new(
22
+ data: null,
23
+ cost: null,
24
+ credits_remaining: null,
25
+ rate_limit_limit: null,
26
+ rate_limit_remaining: null,
27
+ rate_limit_reset: null,
28
+ metering: null,
29
+ request_id: null
30
+ )
31
+ ```
32
+
data/docs/ModelDetail.md CHANGED
@@ -26,6 +26,8 @@
26
26
  | **last_modified** | **String** | | [optional] |
27
27
  | **first_seen_at** | **String** | | [optional] |
28
28
  | **last_seen_at** | **String** | | [optional] |
29
+ | **is_delisted** | **Integer** | 0/1 flag. `1` means HF no longer serves this model — the response is the last state we recorded. | [optional] |
30
+ | **days_since_gone** | **Integer** | Whole days between last_seen_at and now. `null` unless is_delisted=1. | [optional] |
29
31
  | **readme_text** | **String** | | [optional] |
30
32
  | **readme_status** | **String** | | [optional] |
31
33
  | **tags** | **String** | JSON-encoded array of Hub tags. | [optional] |
@@ -82,6 +84,8 @@ instance = Abliteration::ModelDetail.new(
82
84
  last_modified: null,
83
85
  first_seen_at: null,
84
86
  last_seen_at: null,
87
+ is_delisted: null,
88
+ days_since_gone: null,
85
89
  readme_text: null,
86
90
  readme_status: null,
87
91
  tags: null,
data/docs/ModelSummary.md CHANGED
@@ -17,6 +17,8 @@
17
17
  | **is_gguf** | **Integer** | | [optional] |
18
18
  | **created_at** | **String** | | [optional] |
19
19
  | **first_seen_at** | **String** | | [optional] |
20
+ | **is_delisted** | **Integer** | 0/1 flag, present in every response row. `1` means the model is no longer on the Hub. | [optional] |
21
+ | **last_seen_at** | **String** | ISO-8601 timestamp of the last successful Hub observation. Non-null on delisted rows. | [optional] |
20
22
 
21
23
  ## Example
22
24
 
@@ -36,7 +38,9 @@ instance = Abliteration::ModelSummary.new(
36
38
  likes: null,
37
39
  is_gguf: null,
38
40
  created_at: null,
39
- first_seen_at: null
41
+ first_seen_at: null,
42
+ is_delisted: null,
43
+ last_seen_at: null
40
44
  )
41
45
  ```
42
46
 
data/docs/ModelsApi.md CHANGED
@@ -4,17 +4,86 @@ All URIs are relative to *https://abliteration.org*
4
4
 
5
5
  | Method | HTTP request | Description |
6
6
  | ------ | ------------ | ----------- |
7
+ | [**get_historical_deletion_summary**](ModelsApi.md#get_historical_deletion_summary) | **GET** /api/v1/models/historical-deletions/summary | Historical deletions — aggregate summary |
7
8
  | [**get_model**](ModelsApi.md#get_model) | **GET** /api/v1/models/{id} | Get one model |
9
+ | [**list_delisted_models**](ModelsApi.md#list_delisted_models) | **GET** /api/v1/models/delisted | List delisted models (change stream) |
10
+ | [**list_historical_deletions**](ModelsApi.md#list_historical_deletions) | **GET** /api/v1/models/historical-deletions/list | Historical deletions — paged list |
8
11
  | [**list_models**](ModelsApi.md#list_models) | **GET** /api/v1/models | List models |
9
12
 
10
13
 
14
+ ## get_historical_deletion_summary
15
+
16
+ > <GetHistoricalDeletionSummary200Response> get_historical_deletion_summary
17
+
18
+ Historical deletions — aggregate summary
19
+
20
+ Cost: 20 credits, flat. Aggregates from the 24-month HF snapshot analysis: total ever seen, total deleted, deletion rate, average months alive, monthly timeline of losses, top-10 by peak downloads. One call replaces half a dozen separate queries.
21
+
22
+ ### Examples
23
+
24
+ ```ruby
25
+ require 'time'
26
+ require 'abliteration'
27
+ # setup authorization
28
+ Abliteration.configure do |config|
29
+ # Configure Bearer authorization: bearerAuth
30
+ config.access_token = 'YOUR_BEARER_TOKEN'
31
+ end
32
+
33
+ api_instance = Abliteration::ModelsApi.new
34
+
35
+ begin
36
+ # Historical deletions — aggregate summary
37
+ result = api_instance.get_historical_deletion_summary
38
+ p result
39
+ rescue Abliteration::ApiError => e
40
+ puts "Error when calling ModelsApi->get_historical_deletion_summary: #{e}"
41
+ end
42
+ ```
43
+
44
+ #### Using the get_historical_deletion_summary_with_http_info variant
45
+
46
+ This returns an Array which contains the response data, status code and headers.
47
+
48
+ > <Array(<GetHistoricalDeletionSummary200Response>, Integer, Hash)> get_historical_deletion_summary_with_http_info
49
+
50
+ ```ruby
51
+ begin
52
+ # Historical deletions — aggregate summary
53
+ data, status_code, headers = api_instance.get_historical_deletion_summary_with_http_info
54
+ p status_code # => 2xx
55
+ p headers # => { ... }
56
+ p data # => <GetHistoricalDeletionSummary200Response>
57
+ rescue Abliteration::ApiError => e
58
+ puts "Error when calling ModelsApi->get_historical_deletion_summary_with_http_info: #{e}"
59
+ end
60
+ ```
61
+
62
+ ### Parameters
63
+
64
+ This endpoint does not need any parameter.
65
+
66
+ ### Return type
67
+
68
+ [**GetHistoricalDeletionSummary200Response**](GetHistoricalDeletionSummary200Response.md)
69
+
70
+ ### Authorization
71
+
72
+ [bearerAuth](../README.md#bearerAuth)
73
+
74
+ ### HTTP request headers
75
+
76
+ - **Content-Type**: Not defined
77
+ - **Accept**: application/json
78
+
79
+
11
80
  ## get_model
12
81
 
13
82
  > <GetModel200Response> get_model(id)
14
83
 
15
84
  Get one model
16
85
 
17
- Cost: 10 credits. Priced above /authors/[id], /methods/[id] and /datasets/[id] because iterating over model ids is functionally a slow dump. The id is author/name and must be percent-encoded.
86
+ Cost: 10 credits. Priced above /authors/[id], /methods/[id] and /datasets/[id] because iterating over model ids is functionally a slow dump. The id is author/name and must be percent-encoded. Delisted models are served here even though they are hidden from the default catalog list; the response then carries `is_delisted=1` and `days_since_gone`.
18
87
 
19
88
  ### Examples
20
89
 
@@ -77,13 +146,169 @@ end
77
146
  - **Accept**: application/json
78
147
 
79
148
 
149
+ ## list_delisted_models
150
+
151
+ > <ListDelistedModels200Response> list_delisted_models(opts)
152
+
153
+ List delisted models (change stream)
154
+
155
+ Cost: 5 credits, flat. Change-stream companion to /models: every row is a tombstone — a model that HF no longer serves, preserved here at its final state. Poll with `since=<last_seen_at of your previous run>` to fetch only new casualties; callers building compliance dashboards, safety-research corpora, or \"wayback\" tools live on this endpoint. See /api#change-stream.
156
+
157
+ ### Examples
158
+
159
+ ```ruby
160
+ require 'time'
161
+ require 'abliteration'
162
+ # setup authorization
163
+ Abliteration.configure do |config|
164
+ # Configure Bearer authorization: bearerAuth
165
+ config.access_token = 'YOUR_BEARER_TOKEN'
166
+ end
167
+
168
+ api_instance = Abliteration::ModelsApi.new
169
+ opts = {
170
+ since: 'since_example', # String | ISO-8601 date or timestamp. Rows with last_seen_at >= since only. Use your previous poll's newest last_seen_at to build an incremental feed.
171
+ sort: 'recent', # String | `recent` (default, newest disappearance first) or `downloads` (biggest casualties first — best for post-mortem coverage).
172
+ limit: 56, # Integer | Rows to return, 1 to 1000. Values outside the range are clamped, not rejected.
173
+ offset: 56 # Integer | Rows to skip. Negative and non-numeric values are treated as 0.
174
+ }
175
+
176
+ begin
177
+ # List delisted models (change stream)
178
+ result = api_instance.list_delisted_models(opts)
179
+ p result
180
+ rescue Abliteration::ApiError => e
181
+ puts "Error when calling ModelsApi->list_delisted_models: #{e}"
182
+ end
183
+ ```
184
+
185
+ #### Using the list_delisted_models_with_http_info variant
186
+
187
+ This returns an Array which contains the response data, status code and headers.
188
+
189
+ > <Array(<ListDelistedModels200Response>, Integer, Hash)> list_delisted_models_with_http_info(opts)
190
+
191
+ ```ruby
192
+ begin
193
+ # List delisted models (change stream)
194
+ data, status_code, headers = api_instance.list_delisted_models_with_http_info(opts)
195
+ p status_code # => 2xx
196
+ p headers # => { ... }
197
+ p data # => <ListDelistedModels200Response>
198
+ rescue Abliteration::ApiError => e
199
+ puts "Error when calling ModelsApi->list_delisted_models_with_http_info: #{e}"
200
+ end
201
+ ```
202
+
203
+ ### Parameters
204
+
205
+ | Name | Type | Description | Notes |
206
+ | ---- | ---- | ----------- | ----- |
207
+ | **since** | **String** | ISO-8601 date or timestamp. Rows with last_seen_at &gt;&#x3D; since only. Use your previous poll&#39;s newest last_seen_at to build an incremental feed. | [optional] |
208
+ | **sort** | **String** | &#x60;recent&#x60; (default, newest disappearance first) or &#x60;downloads&#x60; (biggest casualties first — best for post-mortem coverage). | [optional][default to &#39;recent&#39;] |
209
+ | **limit** | **Integer** | Rows to return, 1 to 1000. Values outside the range are clamped, not rejected. | [optional][default to 50] |
210
+ | **offset** | **Integer** | Rows to skip. Negative and non-numeric values are treated as 0. | [optional][default to 0] |
211
+
212
+ ### Return type
213
+
214
+ [**ListDelistedModels200Response**](ListDelistedModels200Response.md)
215
+
216
+ ### Authorization
217
+
218
+ [bearerAuth](../README.md#bearerAuth)
219
+
220
+ ### HTTP request headers
221
+
222
+ - **Content-Type**: Not defined
223
+ - **Accept**: application/json
224
+
225
+
226
+ ## list_historical_deletions
227
+
228
+ > <ListHistoricalDeletions200Response> list_historical_deletions(opts)
229
+
230
+ Historical deletions — paged list
231
+
232
+ Cost: 5 credits, flat. Paged/filterable window on the 24-month deletion backlog. Rows are frozen at the moment the model was last seen on the Hub — peak_downloads and total_months_alive never change after death. Sort by size (`downloads`, default), recency (`recent`, newest deaths first) or lifespan (`lifespan`, longest-lived first — surprising deaths).
233
+
234
+ ### Examples
235
+
236
+ ```ruby
237
+ require 'time'
238
+ require 'abliteration'
239
+ # setup authorization
240
+ Abliteration.configure do |config|
241
+ # Configure Bearer authorization: bearerAuth
242
+ config.access_token = 'YOUR_BEARER_TOKEN'
243
+ end
244
+
245
+ api_instance = Abliteration::ModelsApi.new
246
+ opts = {
247
+ since_month: 'since_month_example', # String | ISO YYYY-MM. Rows with last_seen_month >= it only.
248
+ min_peak_downloads: 56, # Integer | Only rows whose peak downloads >= this. `casualties over N` queries.
249
+ sort: 'downloads', # String | `downloads` (default, biggest first), `recent` (newest last_seen_month first), `lifespan` (longest-lived first).
250
+ limit: 56, # Integer | Rows to return, 1 to 1000. Values outside the range are clamped, not rejected.
251
+ offset: 56 # Integer | Rows to skip. Negative and non-numeric values are treated as 0.
252
+ }
253
+
254
+ begin
255
+ # Historical deletions — paged list
256
+ result = api_instance.list_historical_deletions(opts)
257
+ p result
258
+ rescue Abliteration::ApiError => e
259
+ puts "Error when calling ModelsApi->list_historical_deletions: #{e}"
260
+ end
261
+ ```
262
+
263
+ #### Using the list_historical_deletions_with_http_info variant
264
+
265
+ This returns an Array which contains the response data, status code and headers.
266
+
267
+ > <Array(<ListHistoricalDeletions200Response>, Integer, Hash)> list_historical_deletions_with_http_info(opts)
268
+
269
+ ```ruby
270
+ begin
271
+ # Historical deletions — paged list
272
+ data, status_code, headers = api_instance.list_historical_deletions_with_http_info(opts)
273
+ p status_code # => 2xx
274
+ p headers # => { ... }
275
+ p data # => <ListHistoricalDeletions200Response>
276
+ rescue Abliteration::ApiError => e
277
+ puts "Error when calling ModelsApi->list_historical_deletions_with_http_info: #{e}"
278
+ end
279
+ ```
280
+
281
+ ### Parameters
282
+
283
+ | Name | Type | Description | Notes |
284
+ | ---- | ---- | ----------- | ----- |
285
+ | **since_month** | **String** | ISO YYYY-MM. Rows with last_seen_month &gt;&#x3D; it only. | [optional] |
286
+ | **min_peak_downloads** | **Integer** | Only rows whose peak downloads &gt;&#x3D; this. &#x60;casualties over N&#x60; queries. | [optional] |
287
+ | **sort** | **String** | &#x60;downloads&#x60; (default, biggest first), &#x60;recent&#x60; (newest last_seen_month first), &#x60;lifespan&#x60; (longest-lived first). | [optional][default to &#39;downloads&#39;] |
288
+ | **limit** | **Integer** | Rows to return, 1 to 1000. Values outside the range are clamped, not rejected. | [optional][default to 50] |
289
+ | **offset** | **Integer** | Rows to skip. Negative and non-numeric values are treated as 0. | [optional][default to 0] |
290
+
291
+ ### Return type
292
+
293
+ [**ListHistoricalDeletions200Response**](ListHistoricalDeletions200Response.md)
294
+
295
+ ### Authorization
296
+
297
+ [bearerAuth](../README.md#bearerAuth)
298
+
299
+ ### HTTP request headers
300
+
301
+ - **Content-Type**: Not defined
302
+ - **Accept**: application/json
303
+
304
+
80
305
  ## list_models
81
306
 
82
307
  > <ListModels200Response> list_models(opts)
83
308
 
84
309
  List models
85
310
 
86
- Cost: 5-300+ credits, stepped by returned rows and multiplied by `1 + (offset/2500)²`. A filtered lookup up to 200 rows costs 5; a 1000-row page on the first page costs 300; on offset=10000, 5100. Filter cheap, dump expensive. See /api#pricing. Delisted models are excluded here but remain reachable by id.
311
+ Cost: 5-300+ credits, stepped by returned rows and multiplied by `1 + (offset/2500)²`. A filtered lookup up to 200 rows costs 5; a 1000-row page on the first page costs 300; on offset=10000, 5100. Filter cheap, dump expensive. See /api#pricing. Delisted models are excluded by default (`delisted=live`); pass `delisted=dead|all` to include tombstoned records. A dedicated change-stream endpoint is at GET /api/v1/models/delisted.
87
312
 
88
313
  ### Examples
89
314
 
@@ -106,6 +331,7 @@ opts = {
106
331
  downloads_lte: 56, # Integer |
107
332
  created_after: 'created_after_example', # String | ISO-8601 date or timestamp, inclusive.
108
333
  created_before: 'created_before_example', # String | ISO-8601 date or timestamp, inclusive.
334
+ delisted: 'live', # String | Tombstone filter. `live` (default): HF-visible models only. `dead`: delisted-only (same shape as this endpoint plus is_delisted=1 and last_seen_at). `all`: both, in one page. For a purpose-built change-stream feed, prefer GET /api/v1/models/delisted.
109
335
  sort: 'downloads', # String | Bare key is the natural direction (downloads/likes = most first, dates = newest first). A leading `-` flips it. `created` and `first_seen` are aliases for the full column names.
110
336
  limit: 56, # Integer | Rows to return, 1 to 1000. Values outside the range are clamped, not rejected.
111
337
  offset: 56 # Integer | Rows to skip. Negative and non-numeric values are treated as 0.
@@ -150,6 +376,7 @@ end
150
376
  | **downloads_lte** | **Integer** | | [optional] |
151
377
  | **created_after** | **String** | ISO-8601 date or timestamp, inclusive. | [optional] |
152
378
  | **created_before** | **String** | ISO-8601 date or timestamp, inclusive. | [optional] |
379
+ | **delisted** | **String** | Tombstone filter. &#x60;live&#x60; (default): HF-visible models only. &#x60;dead&#x60;: delisted-only (same shape as this endpoint plus is_delisted&#x3D;1 and last_seen_at). &#x60;all&#x60;: both, in one page. For a purpose-built change-stream feed, prefer GET /api/v1/models/delisted. | [optional][default to &#39;live&#39;] |
153
380
  | **sort** | **String** | Bare key is the natural direction (downloads/likes &#x3D; most first, dates &#x3D; newest first). A leading &#x60;-&#x60; flips it. &#x60;created&#x60; and &#x60;first_seen&#x60; are aliases for the full column names. | [optional][default to &#39;downloads&#39;] |
154
381
  | **limit** | **Integer** | Rows to return, 1 to 1000. Values outside the range are clamped, not rejected. | [optional][default to 50] |
155
382
  | **offset** | **Integer** | Rows to skip. Negative and non-numeric values are treated as 0. | [optional][default to 0] |