@purveyors/sdk 0.50.0 → 0.52.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/index.d.ts CHANGED
@@ -4124,6 +4124,16 @@ interface paths {
4124
4124
  elevationMinMasl?: number | null;
4125
4125
  elevationMaxMasl?: number | null;
4126
4126
  includeUnknownElevation?: "true" | "false";
4127
+ screenMin?: number | null;
4128
+ screenMax?: number | null;
4129
+ includeUnknownScreen?: "true" | "false";
4130
+ gradeCode?: string | string[];
4131
+ peaberry?: "true" | "false";
4132
+ labAnalyzed?: "true" | "false";
4133
+ moistureMax?: number | null;
4134
+ waterActivityMax?: number | null;
4135
+ densityMin?: number | null;
4136
+ scoreProtocol?: "sca_2004" | "cva_affective" | "q_arabica" | "coe" | "supplier_unspecified";
4127
4137
  processing_base_method?: string;
4128
4138
  fermentation_type?: string;
4129
4139
  process_additive?: string;
@@ -4237,6 +4247,16 @@ interface paths {
4237
4247
  elevationMinMasl?: number | null;
4238
4248
  elevationMaxMasl?: number | null;
4239
4249
  includeUnknownElevation?: "true" | "false";
4250
+ screenMin?: number | null;
4251
+ screenMax?: number | null;
4252
+ includeUnknownScreen?: "true" | "false";
4253
+ gradeCode?: string | string[];
4254
+ peaberry?: "true" | "false";
4255
+ labAnalyzed?: "true" | "false";
4256
+ moistureMax?: number | null;
4257
+ waterActivityMax?: number | null;
4258
+ densityMin?: number | null;
4259
+ scoreProtocol?: "sca_2004" | "cva_affective" | "q_arabica" | "coe" | "supplier_unspecified";
4240
4260
  processing_base_method?: string;
4241
4261
  fermentation_type?: string;
4242
4262
  process_additive?: string;
@@ -4385,6 +4405,16 @@ interface paths {
4385
4405
  elevationMinMasl?: number | null;
4386
4406
  elevationMaxMasl?: number | null;
4387
4407
  includeUnknownElevation?: "true" | "false";
4408
+ screenMin?: number | null;
4409
+ screenMax?: number | null;
4410
+ includeUnknownScreen?: "true" | "false";
4411
+ gradeCode?: string | string[];
4412
+ peaberry?: "true" | "false";
4413
+ labAnalyzed?: "true" | "false";
4414
+ moistureMax?: number | null;
4415
+ waterActivityMax?: number | null;
4416
+ densityMin?: number | null;
4417
+ scoreProtocol?: "sca_2004" | "cva_affective" | "q_arabica" | "coe" | "supplier_unspecified";
4388
4418
  processing_base_method?: string;
4389
4419
  fermentation_type?: string;
4390
4420
  process_additive?: string;
@@ -6092,6 +6122,178 @@ interface paths {
6092
6122
  patch?: never;
6093
6123
  trace?: never;
6094
6124
  };
6125
+ "/v1/catalog/compare": {
6126
+ parameters: {
6127
+ query?: never;
6128
+ header?: never;
6129
+ path?: never;
6130
+ cookie?: never;
6131
+ };
6132
+ /**
6133
+ * Compare catalog coffees side by side
6134
+ * @description Compares 2 to 6 catalog coffees: price at a chosen quantity, tiers, origin-median context, availability, origin, process, variety, grading (screen size, grade designations by dimension, lab analysis, defects, and protocol-labeled cup score), and tasting notes. Grading rows never carry best marks. Each row is marked same, partial, or different, and price rows mark the cheapest lots. Viewer sessions compare 2 coffees; member and Parchment Intelligence sessions and customer API keys with catalog:read compare up to 6.
6135
+ */
6136
+ get: {
6137
+ parameters: {
6138
+ query: {
6139
+ ids: string;
6140
+ quantityLbs?: string;
6141
+ };
6142
+ header?: never;
6143
+ path?: never;
6144
+ cookie?: never;
6145
+ };
6146
+ requestBody?: never;
6147
+ responses: {
6148
+ /** @description Lots with comparison rows */
6149
+ 200: {
6150
+ headers: {
6151
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
6152
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
6153
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
6154
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
6155
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
6156
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
6157
+ [name: string]: unknown;
6158
+ };
6159
+ content: {
6160
+ "application/json": components["schemas"]["CatalogComparisonResponse"];
6161
+ };
6162
+ };
6163
+ /** @description Invalid ids or quantity */
6164
+ 400: {
6165
+ headers: {
6166
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
6167
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
6168
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
6169
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
6170
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
6171
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
6172
+ [name: string]: unknown;
6173
+ };
6174
+ content: {
6175
+ "application/json": components["schemas"]["ErrorResponse"];
6176
+ };
6177
+ };
6178
+ /** @description Authentication required */
6179
+ 401: {
6180
+ headers: {
6181
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
6182
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
6183
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
6184
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
6185
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
6186
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
6187
+ [name: string]: unknown;
6188
+ };
6189
+ content: {
6190
+ "application/json": components["schemas"]["ErrorResponse"];
6191
+ };
6192
+ };
6193
+ /** @description Insufficient entitlement (plan or role) */
6194
+ 403: {
6195
+ headers: {
6196
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
6197
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
6198
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
6199
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
6200
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
6201
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
6202
+ [name: string]: unknown;
6203
+ };
6204
+ content: {
6205
+ "application/json": components["schemas"]["ErrorResponse"];
6206
+ };
6207
+ };
6208
+ 429: components["responses"]["ApiRateLimitExceeded"];
6209
+ };
6210
+ };
6211
+ put?: never;
6212
+ post?: never;
6213
+ delete?: never;
6214
+ options?: never;
6215
+ head?: never;
6216
+ patch?: never;
6217
+ trace?: never;
6218
+ };
6219
+ "/v1/catalog/grades": {
6220
+ parameters: {
6221
+ query?: never;
6222
+ header?: never;
6223
+ path?: never;
6224
+ cookie?: never;
6225
+ };
6226
+ /**
6227
+ * Green grade designation vocabulary
6228
+ * @description Lists namespaced grade codes (`<system>:<token>`, e.g. KE:AA, ET:G1, GT:SHB, PREP:EP) with their system, issuing body, grading dimensions, label, description, and any cited implied ranges. Reference data: identical for every authorized caller and not subject to row projection or collection limits. Retired codes are omitted unless includeRetired=true.
6229
+ */
6230
+ get: {
6231
+ parameters: {
6232
+ query?: {
6233
+ includeRetired?: "true" | "false";
6234
+ };
6235
+ header?: never;
6236
+ path?: never;
6237
+ cookie?: never;
6238
+ };
6239
+ requestBody?: never;
6240
+ responses: {
6241
+ /** @description Grade designations */
6242
+ 200: {
6243
+ headers: {
6244
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
6245
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
6246
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
6247
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
6248
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
6249
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
6250
+ [name: string]: unknown;
6251
+ };
6252
+ content: {
6253
+ "application/json": components["schemas"]["CatalogGradesResponse"];
6254
+ };
6255
+ };
6256
+ /** @description Authentication required */
6257
+ 401: {
6258
+ headers: {
6259
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
6260
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
6261
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
6262
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
6263
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
6264
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
6265
+ [name: string]: unknown;
6266
+ };
6267
+ content: {
6268
+ "application/json": components["schemas"]["ErrorResponse"];
6269
+ };
6270
+ };
6271
+ /** @description Insufficient entitlement (plan or role) */
6272
+ 403: {
6273
+ headers: {
6274
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
6275
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
6276
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
6277
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
6278
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
6279
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
6280
+ [name: string]: unknown;
6281
+ };
6282
+ content: {
6283
+ "application/json": components["schemas"]["ErrorResponse"];
6284
+ };
6285
+ };
6286
+ 429: components["responses"]["ApiRateLimitExceeded"];
6287
+ };
6288
+ };
6289
+ put?: never;
6290
+ post?: never;
6291
+ delete?: never;
6292
+ options?: never;
6293
+ head?: never;
6294
+ patch?: never;
6295
+ trace?: never;
6296
+ };
6095
6297
  "/v1/catalog/{id}/price-history": {
6096
6298
  parameters: {
6097
6299
  query?: never;
@@ -14118,6 +14320,13 @@ interface components {
14118
14320
  canExport: boolean;
14119
14321
  };
14120
14322
  };
14323
+ GradeImpliedRanges: {
14324
+ screen_min: number | null;
14325
+ /** @description Null with a minimum means the definition has no upper threshold. */
14326
+ screen_max: number | null;
14327
+ elevation_min_masl: number | null;
14328
+ elevation_max_masl: number | null;
14329
+ } | null;
14121
14330
  /** @description API-owned row-level trust summary. Raw evidence is never included. */
14122
14331
  CatalogProofSummary: {
14123
14332
  /** @enum {string} */
@@ -14219,6 +14428,38 @@ interface components {
14219
14428
  unstocked_date?: string | null;
14220
14429
  ai_description?: string | null;
14221
14430
  ai_tasting_notes?: unknown;
14431
+ /** @description ADR-016 green grading (member sessions and customer API keys). Disclosed values only; implied ranges stay on each code. */
14432
+ grading?: {
14433
+ elevation: {
14434
+ min_masl: number | null;
14435
+ max_masl: number | null;
14436
+ };
14437
+ screen: {
14438
+ /** @description Disclosed screen size, 64ths of an inch */
14439
+ min: number | null;
14440
+ /** @description Null with a minimum means open-ended upward (18+) */
14441
+ max: number | null;
14442
+ };
14443
+ codes: {
14444
+ code: string;
14445
+ label: string;
14446
+ system: string;
14447
+ dimensions: ("size" | "altitude" | "defects" | "cup" | "preparation")[];
14448
+ implied: components["schemas"]["GradeImpliedRanges"];
14449
+ }[];
14450
+ /** @description Versioned lab analysis: moisture_pct, water_activity, density_g_l, density_method, quakers, defects {protocol, sample_g, category_1, category_2, full_defect_equivalents} */
14451
+ analysis: {
14452
+ [key: string]: unknown;
14453
+ } | null;
14454
+ cup_score: {
14455
+ value: number | null;
14456
+ /**
14457
+ * @description Scores compare only within one established protocol; supplier_unspecified is never ranked.
14458
+ * @enum {string|null}
14459
+ */
14460
+ protocol: "sca_2004" | "cva_affective" | "q_arabica" | "coe" | "supplier_unspecified" | null;
14461
+ };
14462
+ };
14222
14463
  proof?: components["schemas"]["CatalogProofSummary"];
14223
14464
  /** @description Entitled metadata-presence signals returned only by projection=summary; false also covers fields outside the caller projection. */
14224
14465
  summarySignals?: {
@@ -15820,6 +16061,86 @@ interface components {
15820
16061
  query_strategy: "bounded-vector-candidates-v1";
15821
16062
  };
15822
16063
  };
16064
+ CatalogComparisonResponse: {
16065
+ data: {
16066
+ quantityLbs: number;
16067
+ lots: {
16068
+ id: number;
16069
+ name: string;
16070
+ source: string | null;
16071
+ link: string | null;
16072
+ stocked: boolean | null;
16073
+ wholesale: boolean | null;
16074
+ price: {
16075
+ quantityLbs: number;
16076
+ /** @description Price per lb when buying the requested quantity; null below the minimum order. */
16077
+ atQuantityLb: number | null;
16078
+ smallestTierLb: number | null;
16079
+ minOrderLbs: number | null;
16080
+ tiers: {
16081
+ minLbs: number | null;
16082
+ priceLb: number;
16083
+ }[];
16084
+ originMedianLb: number | null;
16085
+ vsOriginMedianPct: number | null;
16086
+ };
16087
+ }[];
16088
+ rows: {
16089
+ key: string;
16090
+ /** @enum {string} */
16091
+ group: "Price" | "Availability" | "Origin" | "Process" | "Coffee" | "Grading" | "Taste" | "Listing";
16092
+ label: string;
16093
+ /** @description One value per lot, in lot order; null when that lot does not disclose it. */
16094
+ values: (string | number | null)[];
16095
+ /**
16096
+ * @description same: every lot has the same value. partial: the lots that disclose it agree, but some do not disclose it. different: values differ.
16097
+ * @enum {string}
16098
+ */
16099
+ relation: "same" | "different" | "partial";
16100
+ /** @description Lots with the lowest price on price rows whose values differ; empty otherwise. */
16101
+ bestLotIds: number[];
16102
+ }[];
16103
+ bestPriceLotIds: number[];
16104
+ /** @description Requested ids not visible to this caller or not found. */
16105
+ missingIds: number[];
16106
+ };
16107
+ meta: {
16108
+ /** @enum {string} */
16109
+ resource: "catalog-compare";
16110
+ /** @enum {string} */
16111
+ namespace: "/v1/catalog/compare";
16112
+ /** @enum {string} */
16113
+ version: "v1";
16114
+ maxLots: number;
16115
+ };
16116
+ };
16117
+ GradeDesignation: {
16118
+ /** @example KE:AA */
16119
+ code: string;
16120
+ /** @example KE */
16121
+ system: string;
16122
+ issuing_body: string | null;
16123
+ country_code: string | null;
16124
+ dimensions: ("size" | "altitude" | "defects" | "cup" | "preparation")[];
16125
+ label: string;
16126
+ description: string;
16127
+ implied: components["schemas"]["GradeImpliedRanges"] & unknown;
16128
+ implied_source: string | null;
16129
+ active: boolean;
16130
+ sort_order: number;
16131
+ };
16132
+ CatalogGradesResponse: {
16133
+ data: components["schemas"]["GradeDesignation"][];
16134
+ meta: {
16135
+ /** @enum {string} */
16136
+ resource: "catalog-grades";
16137
+ /** @enum {string} */
16138
+ namespace: "/v1/catalog/grades";
16139
+ /** @enum {string} */
16140
+ version: "v1";
16141
+ dimensions: ("size" | "altitude" | "defects" | "cup" | "preparation")[];
16142
+ };
16143
+ };
15823
16144
  LotPriceHistoryResponse: {
15824
16145
  data: {
15825
16146
  catalogId: number;
@@ -17859,6 +18180,10 @@ type CatalogRankPremiumHeaders = NonNullable<paths["/v1/catalog/rank-premium"]["
17859
18180
  type CatalogSupplierHeaders = NonNullable<paths["/v1/catalog/suppliers"]["get"]["parameters"]["header"]>;
17860
18181
  /** Query parameters for {@link ParchmentClient.catalog.similar}. */
17861
18182
  type CatalogSimilarQuery = NonNullable<paths["/v1/catalog/{id}/similar"]["get"]["parameters"]["query"]>;
18183
+ /** Query parameters for {@link ParchmentClient.catalog.compare}. */
18184
+ type CatalogCompareQuery = NonNullable<paths["/v1/catalog/compare"]["get"]["parameters"]["query"]>;
18185
+ /** Query parameters for {@link ParchmentClient.catalog.grades}. */
18186
+ type CatalogGradesQuery = NonNullable<paths["/v1/catalog/grades"]["get"]["parameters"]["query"]>;
17862
18187
  /** Query parameters for {@link ParchmentClient.catalog.priceHistory}. */
17863
18188
  type CatalogPriceHistoryQuery = NonNullable<paths["/v1/catalog/{id}/price-history"]["get"]["parameters"]["query"]>;
17864
18189
  /** Query parameters for {@link ParchmentClient.priceIndex.list}. */
@@ -20451,6 +20776,16 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
20451
20776
  elevationMinMasl?: number | null;
20452
20777
  elevationMaxMasl?: number | null;
20453
20778
  includeUnknownElevation?: "true" | "false";
20779
+ screenMin?: number | null;
20780
+ screenMax?: number | null;
20781
+ includeUnknownScreen?: "true" | "false";
20782
+ gradeCode?: string | string[];
20783
+ peaberry?: "true" | "false";
20784
+ labAnalyzed?: "true" | "false";
20785
+ moistureMax?: number | null;
20786
+ waterActivityMax?: number | null;
20787
+ densityMin?: number | null;
20788
+ scoreProtocol?: "sca_2004" | "cva_affective" | "q_arabica" | "coe" | "supplier_unspecified";
20454
20789
  processing_base_method?: string;
20455
20790
  fermentation_type?: string;
20456
20791
  process_additive?: string;
@@ -20547,6 +20882,16 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
20547
20882
  elevationMinMasl?: number | null;
20548
20883
  elevationMaxMasl?: number | null;
20549
20884
  includeUnknownElevation?: "true" | "false";
20885
+ screenMin?: number | null;
20886
+ screenMax?: number | null;
20887
+ includeUnknownScreen?: "true" | "false";
20888
+ gradeCode?: string | string[];
20889
+ peaberry?: "true" | "false";
20890
+ labAnalyzed?: "true" | "false";
20891
+ moistureMax?: number | null;
20892
+ waterActivityMax?: number | null;
20893
+ densityMin?: number | null;
20894
+ scoreProtocol?: "sca_2004" | "cva_affective" | "q_arabica" | "coe" | "supplier_unspecified";
20550
20895
  processing_base_method?: string;
20551
20896
  fermentation_type?: string;
20552
20897
  process_additive?: string;
@@ -20591,6 +20936,16 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
20591
20936
  elevationMinMasl?: number | null;
20592
20937
  elevationMaxMasl?: number | null;
20593
20938
  includeUnknownElevation?: "true" | "false";
20939
+ screenMin?: number | null;
20940
+ screenMax?: number | null;
20941
+ includeUnknownScreen?: "true" | "false";
20942
+ gradeCode?: string | string[];
20943
+ peaberry?: "true" | "false";
20944
+ labAnalyzed?: "true" | "false";
20945
+ moistureMax?: number | null;
20946
+ waterActivityMax?: number | null;
20947
+ densityMin?: number | null;
20948
+ scoreProtocol?: "sca_2004" | "cva_affective" | "q_arabica" | "coe" | "supplier_unspecified";
20594
20949
  processing_base_method?: string;
20595
20950
  fermentation_type?: string;
20596
20951
  process_additive?: string;
@@ -20714,6 +21069,16 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
20714
21069
  elevationMinMasl?: number | null;
20715
21070
  elevationMaxMasl?: number | null;
20716
21071
  includeUnknownElevation?: "true" | "false";
21072
+ screenMin?: number | null;
21073
+ screenMax?: number | null;
21074
+ includeUnknownScreen?: "true" | "false";
21075
+ gradeCode?: string | string[];
21076
+ peaberry?: "true" | "false";
21077
+ labAnalyzed?: "true" | "false";
21078
+ moistureMax?: number | null;
21079
+ waterActivityMax?: number | null;
21080
+ densityMin?: number | null;
21081
+ scoreProtocol?: "sca_2004" | "cva_affective" | "q_arabica" | "coe" | "supplier_unspecified";
20717
21082
  processing_base_method?: string;
20718
21083
  fermentation_type?: string;
20719
21084
  process_additive?: string;
@@ -20766,6 +21131,16 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
20766
21131
  elevationMinMasl?: number | null;
20767
21132
  elevationMaxMasl?: number | null;
20768
21133
  includeUnknownElevation?: "true" | "false";
21134
+ screenMin?: number | null;
21135
+ screenMax?: number | null;
21136
+ includeUnknownScreen?: "true" | "false";
21137
+ gradeCode?: string | string[];
21138
+ peaberry?: "true" | "false";
21139
+ labAnalyzed?: "true" | "false";
21140
+ moistureMax?: number | null;
21141
+ waterActivityMax?: number | null;
21142
+ densityMin?: number | null;
21143
+ scoreProtocol?: "sca_2004" | "cva_affective" | "q_arabica" | "coe" | "supplier_unspecified";
20769
21144
  processing_base_method?: string;
20770
21145
  fermentation_type?: string;
20771
21146
  process_additive?: string;
@@ -20856,6 +21231,16 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
20856
21231
  elevationMinMasl?: number | null;
20857
21232
  elevationMaxMasl?: number | null;
20858
21233
  includeUnknownElevation?: "true" | "false";
21234
+ screenMin?: number | null;
21235
+ screenMax?: number | null;
21236
+ includeUnknownScreen?: "true" | "false";
21237
+ gradeCode?: string | string[];
21238
+ peaberry?: "true" | "false";
21239
+ labAnalyzed?: "true" | "false";
21240
+ moistureMax?: number | null;
21241
+ waterActivityMax?: number | null;
21242
+ densityMin?: number | null;
21243
+ scoreProtocol?: "sca_2004" | "cva_affective" | "q_arabica" | "coe" | "supplier_unspecified";
20859
21244
  processing_base_method?: string;
20860
21245
  fermentation_type?: string;
20861
21246
  process_additive?: string;
@@ -21660,6 +22045,85 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
21660
22045
  } | undefined;
21661
22046
  };
21662
22047
  }, `${string}/${string}`>>;
22048
+ /** Compare 2 to 6 catalog coffees side by side. */
22049
+ compare: (query: CatalogCompareQuery) => Promise<openapi_fetch.FetchResponse<{
22050
+ parameters: {
22051
+ query: {
22052
+ ids: string;
22053
+ quantityLbs?: string;
22054
+ };
22055
+ header?: never;
22056
+ path?: never;
22057
+ cookie?: never;
22058
+ };
22059
+ requestBody?: never;
22060
+ responses: {
22061
+ 200: {
22062
+ headers: {
22063
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
22064
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
22065
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
22066
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
22067
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
22068
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
22069
+ [name: string]: unknown;
22070
+ };
22071
+ content: {
22072
+ "application/json": components["schemas"]["CatalogComparisonResponse"];
22073
+ };
22074
+ };
22075
+ 400: {
22076
+ headers: {
22077
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
22078
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
22079
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
22080
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
22081
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
22082
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
22083
+ [name: string]: unknown;
22084
+ };
22085
+ content: {
22086
+ "application/json": components["schemas"]["ErrorResponse"];
22087
+ };
22088
+ };
22089
+ 401: {
22090
+ headers: {
22091
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
22092
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
22093
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
22094
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
22095
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
22096
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
22097
+ [name: string]: unknown;
22098
+ };
22099
+ content: {
22100
+ "application/json": components["schemas"]["ErrorResponse"];
22101
+ };
22102
+ };
22103
+ 403: {
22104
+ headers: {
22105
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
22106
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
22107
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
22108
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
22109
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
22110
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
22111
+ [name: string]: unknown;
22112
+ };
22113
+ content: {
22114
+ "application/json": components["schemas"]["ErrorResponse"];
22115
+ };
22116
+ };
22117
+ 429: components["responses"]["ApiRateLimitExceeded"];
22118
+ };
22119
+ }, {
22120
+ params: {
22121
+ query: {
22122
+ ids: string;
22123
+ quantityLbs?: string;
22124
+ };
22125
+ };
22126
+ }, `${string}/${string}`>>;
21663
22127
  /** Daily price history for one catalog coffee, with minimum-tier change events. */
21664
22128
  priceHistory: (id: string, query?: CatalogPriceHistoryQuery) => Promise<openapi_fetch.FetchResponse<{
21665
22129
  parameters: {
@@ -21756,6 +22220,69 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
21756
22220
  } | undefined;
21757
22221
  };
21758
22222
  }, `${string}/${string}`>>;
22223
+ /** Green grade designation vocabulary, e.g. KE:AA, GT:SHB, PREP:EP. */
22224
+ grades: (query?: CatalogGradesQuery) => Promise<openapi_fetch.FetchResponse<{
22225
+ parameters: {
22226
+ query?: {
22227
+ includeRetired?: "true" | "false";
22228
+ };
22229
+ header?: never;
22230
+ path?: never;
22231
+ cookie?: never;
22232
+ };
22233
+ requestBody?: never;
22234
+ responses: {
22235
+ 200: {
22236
+ headers: {
22237
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
22238
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
22239
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
22240
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
22241
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
22242
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
22243
+ [name: string]: unknown;
22244
+ };
22245
+ content: {
22246
+ "application/json": components["schemas"]["CatalogGradesResponse"];
22247
+ };
22248
+ };
22249
+ 401: {
22250
+ headers: {
22251
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
22252
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
22253
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
22254
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
22255
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
22256
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
22257
+ [name: string]: unknown;
22258
+ };
22259
+ content: {
22260
+ "application/json": components["schemas"]["ErrorResponse"];
22261
+ };
22262
+ };
22263
+ 403: {
22264
+ headers: {
22265
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
22266
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
22267
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
22268
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
22269
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
22270
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
22271
+ [name: string]: unknown;
22272
+ };
22273
+ content: {
22274
+ "application/json": components["schemas"]["ErrorResponse"];
22275
+ };
22276
+ };
22277
+ 429: components["responses"]["ApiRateLimitExceeded"];
22278
+ };
22279
+ }, {
22280
+ params: {
22281
+ query: {
22282
+ includeRetired?: "true" | "false";
22283
+ } | undefined;
22284
+ };
22285
+ }, `${string}/${string}`>>;
21759
22286
  };
21760
22287
  priceIndex: {
21761
22288
  /** Available exact 30-day comparisons, with no empty-origin search. */
@@ -29076,7 +29603,9 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
29076
29603
  "application/json": components["schemas"]["ErrorResponse"];
29077
29604
  };
29078
29605
  };
29079
- 429: components["responses"]["ApiRateLimitExceeded"];
29606
+ 429:
29607
+ /** Closed session-only command for {@link ParchmentClient.confirmedActions.execute}. */
29608
+ components["responses"]["ApiRateLimitExceeded"];
29080
29609
  };
29081
29610
  }, {
29082
29611
  params: {
@@ -29115,9 +29644,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
29115
29644
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
29116
29645
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
29117
29646
  "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
29118
- "X-RateLimit-Burst-Limit":
29119
- /** Anonymous capability body for {@link ParchmentClient.inventory.shareGrants.redeem}. */
29120
- components["headers"]["X-RateLimit-Burst-Limit"];
29647
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
29121
29648
  "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
29122
29649
  "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
29123
29650
  [name: string]: unknown;
@@ -29277,10 +29804,8 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
29277
29804
  headers: {
29278
29805
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
29279
29806
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
29280
- "X-RateLimit-Reset":
29281
- /** List the caller's saved sourcing briefs. */
29282
- components["headers"]["X-RateLimit-Reset"];
29283
- "X-RateLimit-Burst-Limit": components["headers"] /** Create a saved sourcing brief. */["X-RateLimit-Burst-Limit"];
29807
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
29808
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
29284
29809
  "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
29285
29810
  "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
29286
29811
  [name: string]: unknown;
@@ -29346,7 +29871,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
29346
29871
  };
29347
29872
  401: {
29348
29873
  headers: {
29349
- "X-RateLimit-Limit": components["headers"] /** Read older messages before a canonical sequence cursor. */["X-RateLimit-Limit"];
29874
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
29350
29875
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
29351
29876
  "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
29352
29877
  "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
@@ -29490,7 +30015,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
29490
30015
  headers: {
29491
30016
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
29492
30017
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
29493
- "X-RateLimit-Reset": components["headers"] /** List the caller's own roast profiles (owner-scoped). */["X-RateLimit-Reset"];
30018
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
29494
30019
  "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
29495
30020
  "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
29496
30021
  "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
@@ -30057,7 +30582,9 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
30057
30582
  [name: string]: unknown;
30058
30583
  };
30059
30584
  content: {
30060
- "application/json": components["schemas"]["ErrorResponse"];
30585
+ "application/json":
30586
+ /** Request body for {@link ParchmentClient.apiKeys.create}. */
30587
+ components["schemas"]["ErrorResponse"];
30061
30588
  };
30062
30589
  };
30063
30590
  403: {
@@ -31261,7 +31788,7 @@ type ParchmentClientMethod = MethodPaths<Omit<ParchmentClient, "raw">>;
31261
31788
  * SDK (such as the CLI) can import this list to prove they cover everything
31262
31789
  * the web agent can do.
31263
31790
  */
31264
- declare const CHAT_AGENT_CAPABILITIES: readonly ["me", "catalog.list", "catalog.facets", "catalog.rank", "catalog.suppliers", "catalog.similar", "inventory.list", "roasts.list", "roasts.get", "roasts.chartData", "referenceProfiles.list", "referenceProfiles.get", "referenceProfiles.chart", "referenceProfiles.compare", "referenceProfiles.preview", "tasting.get", "priceIndex.list", "priceIndex.stats", "priceIndex.comparisons", "priceIndex.comparison", "priceIndex.history", "market.signals", "market.metadataIndex", "market.overview", "market.evidence"];
31791
+ declare const CHAT_AGENT_CAPABILITIES: readonly ["me", "catalog.list", "catalog.facets", "catalog.rank", "catalog.suppliers", "catalog.similar", "catalog.compare", "catalog.grades", "catalog.priceHistory", "inventory.list", "roasts.list", "roasts.get", "roasts.chartData", "referenceProfiles.list", "referenceProfiles.get", "referenceProfiles.chart", "referenceProfiles.compare", "referenceProfiles.preview", "tasting.get", "priceIndex.list", "priceIndex.stats", "priceIndex.comparisons", "priceIndex.comparison", "priceIndex.history", "market.signals", "market.metadataIndex", "market.overview", "market.evidence"];
31265
31792
  type ChatAgentCapability = (typeof CHAT_AGENT_CAPABILITIES)[number];
31266
31793
  /**
31267
31794
  * Writes the web agent can propose. The agent never writes directly: it
@@ -31306,4 +31833,4 @@ type PickPaths<T, P extends string> = {
31306
31833
  };
31307
31834
  type ChatAgentClient = PickPaths<ParchmentClient, ChatAgentCapability>;
31308
31835
 
31309
- export { type AccountDeletionOperation, type AccountDeletionRequest, type BillingCheckoutCreateRequest, type BillingCheckoutSession, type BillingManualEntitlementsRequest, type BillingSubscriptionMutationRequest, type BillingSubscriptionOperation, type BriefMatchesQuery, CHAT_AGENT_CAPABILITIES, CHAT_AGENT_CAPABILITY_EXCLUSIONS, CHAT_AGENT_CONFIRMED_ACTION_TYPES, type CatalogInventoryBatchLifecycle, type CatalogInventoryBatchReserveRequest, type CatalogInventoryBatchResult, type CatalogItem, type CatalogListQuery, type CatalogMapHeaders, type CatalogMapQuery, type CatalogMapResponse, type CatalogPriceHistoryQuery, type CatalogProofSummary, type CatalogSimilarQuery, type ChatAgentCapability, type ChatAgentCapabilityExclusion, type ChatAgentCapabilityExclusionReason, type ChatAgentClient, type ChatAgentConfirmedActionType, type ConfirmedActionExecuteRequest, type ConversationCanvasUpdateRequest, type ConversationChatStreamRequest, type ConversationMemoryDreamRequest, type ConversationMemoryUpdateRequest, type ConversationMessageAppendRequest, type ConversationSummaryUpdateRequest, type ConversationWorkspaceClearRequest, type ConversationWorkspaceCreateRequest, type ConversationWorkspaceMetadataRequest, type InventoryCreateRequest, type InventoryShareCatalog, type InventoryShareGrant, type InventoryShareGrantCreateRequest, type InventoryShareGrantRedeemRequest, type InventoryShareInventory, type InventoryShareRoastSummary, type InventoryUpdateRequest, type MarketOverview, type MarketSignalsQuery, type MetadataIndexQuery, type OwnerApiUsage, type OwnerApiUsageQuery, type ParchmentClient, type ParchmentClientMethod, type ParchmentClientOptions, type PriceIndexQuery, type PriceIndexStatsQuery, type ProfitItem, type ProfitListQuery, type RoastBatchCreateRequest, type RoastChartData, type RoastChartDataQuery, type RoastChartEvent, type RoastChartSeries, type RoastLiveCurveRequest, type SalesCreateRequest, type SalesListQuery, type SalesUpdateRequest, type SourcingBriefCreateRequest, type TrackedLotMutation, type TrackedLotSummary, type TrackedLotsListQuery, type components, createParchmentClient, type paths };
31836
+ export { type AccountDeletionOperation, type AccountDeletionRequest, type BillingCheckoutCreateRequest, type BillingCheckoutSession, type BillingManualEntitlementsRequest, type BillingSubscriptionMutationRequest, type BillingSubscriptionOperation, type BriefMatchesQuery, CHAT_AGENT_CAPABILITIES, CHAT_AGENT_CAPABILITY_EXCLUSIONS, CHAT_AGENT_CONFIRMED_ACTION_TYPES, type CatalogCompareQuery, type CatalogGradesQuery, type CatalogInventoryBatchLifecycle, type CatalogInventoryBatchReserveRequest, type CatalogInventoryBatchResult, type CatalogItem, type CatalogListQuery, type CatalogMapHeaders, type CatalogMapQuery, type CatalogMapResponse, type CatalogPriceHistoryQuery, type CatalogProofSummary, type CatalogSimilarQuery, type ChatAgentCapability, type ChatAgentCapabilityExclusion, type ChatAgentCapabilityExclusionReason, type ChatAgentClient, type ChatAgentConfirmedActionType, type ConfirmedActionExecuteRequest, type ConversationCanvasUpdateRequest, type ConversationChatStreamRequest, type ConversationMemoryDreamRequest, type ConversationMemoryUpdateRequest, type ConversationMessageAppendRequest, type ConversationSummaryUpdateRequest, type ConversationWorkspaceClearRequest, type ConversationWorkspaceCreateRequest, type ConversationWorkspaceMetadataRequest, type InventoryCreateRequest, type InventoryShareCatalog, type InventoryShareGrant, type InventoryShareGrantCreateRequest, type InventoryShareGrantRedeemRequest, type InventoryShareInventory, type InventoryShareRoastSummary, type InventoryUpdateRequest, type MarketOverview, type MarketSignalsQuery, type MetadataIndexQuery, type OwnerApiUsage, type OwnerApiUsageQuery, type ParchmentClient, type ParchmentClientMethod, type ParchmentClientOptions, type PriceIndexQuery, type PriceIndexStatsQuery, type ProfitItem, type ProfitListQuery, type RoastBatchCreateRequest, type RoastChartData, type RoastChartDataQuery, type RoastChartEvent, type RoastChartSeries, type RoastLiveCurveRequest, type SalesCreateRequest, type SalesListQuery, type SalesUpdateRequest, type SourcingBriefCreateRequest, type TrackedLotMutation, type TrackedLotSummary, type TrackedLotsListQuery, type components, createParchmentClient, type paths };