@purveyors/sdk 0.43.0 → 0.45.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
@@ -653,7 +653,7 @@ interface paths {
653
653
  patch?: never;
654
654
  trace?: never;
655
655
  };
656
- "/v1/reference-profiles/imports": {
656
+ "/v1/reference-profiles/{id}/revisions/{revisionId}/preview": {
657
657
  parameters: {
658
658
  query?: never;
659
659
  header?: never;
@@ -662,24 +662,25 @@ interface paths {
662
662
  };
663
663
  get?: never;
664
664
  put?: never;
665
- /** Create a reference profile from an Artisan file */
665
+ /** Preview a constrained planned profile from an Artisan reference */
666
666
  post: {
667
667
  parameters: {
668
668
  query?: never;
669
- header: {
670
- "idempotency-key": string;
669
+ header?: never;
670
+ path: {
671
+ id: string;
672
+ revisionId: string;
671
673
  };
672
- path?: never;
673
674
  cookie?: never;
674
675
  };
675
676
  requestBody: {
676
677
  content: {
677
- "application/json": components["schemas"]["ReferenceProfileImportRequest"];
678
+ "application/json": components["schemas"]["ReferenceProfileGenerationRequest"];
678
679
  };
679
680
  };
680
681
  responses: {
681
- /** @description Created reference profile */
682
- 201: {
682
+ /** @description Deterministic preview without persistence */
683
+ 200: {
683
684
  headers: {
684
685
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
685
686
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -690,7 +691,7 @@ interface paths {
690
691
  [name: string]: unknown;
691
692
  };
692
693
  content: {
693
- "application/json": components["schemas"]["ReferenceProfileResponse"];
694
+ "application/json": components["schemas"]["ReferenceProfileGenerationPreviewResponse"];
694
695
  };
695
696
  };
696
697
  /** @description Invalid request */
@@ -777,7 +778,7 @@ interface paths {
777
778
  patch?: never;
778
779
  trace?: never;
779
780
  };
780
- "/v1/reference-profiles/from-roast": {
781
+ "/v1/reference-profiles/{id}/revisions/{revisionId}/generated": {
781
782
  parameters: {
782
783
  query?: never;
783
784
  header?: never;
@@ -786,23 +787,26 @@ interface paths {
786
787
  };
787
788
  get?: never;
788
789
  put?: never;
789
- /** Snapshot an executed roast as a reference profile */
790
+ /** Save a planned reference with immutable parent lineage */
790
791
  post: {
791
792
  parameters: {
792
793
  query?: never;
793
794
  header: {
794
795
  "idempotency-key": string;
795
796
  };
796
- path?: never;
797
+ path: {
798
+ id: string;
799
+ revisionId: string;
800
+ };
797
801
  cookie?: never;
798
802
  };
799
803
  requestBody: {
800
804
  content: {
801
- "application/json": components["schemas"]["ReferenceProfileFromRoastRequest"];
805
+ "application/json": components["schemas"]["ReferenceProfileGenerationRequest"];
802
806
  };
803
807
  };
804
808
  responses: {
805
- /** @description Created immutable roast snapshot */
809
+ /** @description Saved planned reference */
806
810
  201: {
807
811
  headers: {
808
812
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
@@ -901,29 +905,28 @@ interface paths {
901
905
  patch?: never;
902
906
  trace?: never;
903
907
  };
904
- "/v1/reference-profiles/{id}/roast-links/{roastId}": {
908
+ "/v1/reference-profiles/{id}/revisions/{revisionId}/export": {
905
909
  parameters: {
906
910
  query?: never;
907
911
  header?: never;
908
912
  path?: never;
909
913
  cookie?: never;
910
914
  };
911
- get?: never;
912
- /** Link a reference profile to an owned roast */
913
- put: {
915
+ /** Download an unsigned Purveyors-generated Artisan background profile */
916
+ get: {
914
917
  parameters: {
915
918
  query?: never;
916
919
  header?: never;
917
920
  path: {
918
921
  id: string;
919
- roastId: number;
922
+ revisionId: string;
920
923
  };
921
924
  cookie?: never;
922
925
  };
923
926
  requestBody?: never;
924
927
  responses: {
925
- /** @description Linked */
926
- 204: {
928
+ /** @description Generated .alog content, not an executed roast */
929
+ 200: {
927
930
  headers: {
928
931
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
929
932
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -933,7 +936,9 @@ interface paths {
933
936
  "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
934
937
  [name: string]: unknown;
935
938
  };
936
- content?: never;
939
+ content: {
940
+ "application/json": components["schemas"]["ReferenceProfileGenerationExportResponse"];
941
+ };
937
942
  };
938
943
  /** @description Invalid request */
939
944
  400: {
@@ -1013,22 +1018,41 @@ interface paths {
1013
1018
  429: components["responses"]["ApiRateLimitExceeded"];
1014
1019
  };
1015
1020
  };
1021
+ put?: never;
1016
1022
  post?: never;
1017
- /** Unlink a reference profile from an owned roast */
1018
- delete: {
1023
+ delete?: never;
1024
+ options?: never;
1025
+ head?: never;
1026
+ patch?: never;
1027
+ trace?: never;
1028
+ };
1029
+ "/v1/reference-profiles/imports": {
1030
+ parameters: {
1031
+ query?: never;
1032
+ header?: never;
1033
+ path?: never;
1034
+ cookie?: never;
1035
+ };
1036
+ get?: never;
1037
+ put?: never;
1038
+ /** Create a reference profile from an Artisan file */
1039
+ post: {
1019
1040
  parameters: {
1020
1041
  query?: never;
1021
- header?: never;
1022
- path: {
1023
- id: string;
1024
- roastId: number;
1042
+ header: {
1043
+ "idempotency-key": string;
1025
1044
  };
1045
+ path?: never;
1026
1046
  cookie?: never;
1027
1047
  };
1028
- requestBody?: never;
1048
+ requestBody: {
1049
+ content: {
1050
+ "application/json": components["schemas"]["ReferenceProfileImportRequest"];
1051
+ };
1052
+ };
1029
1053
  responses: {
1030
- /** @description Unlinked */
1031
- 204: {
1054
+ /** @description Created reference profile */
1055
+ 201: {
1032
1056
  headers: {
1033
1057
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1034
1058
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -1038,7 +1062,9 @@ interface paths {
1038
1062
  "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1039
1063
  [name: string]: unknown;
1040
1064
  };
1041
- content?: never;
1065
+ content: {
1066
+ "application/json": components["schemas"]["ReferenceProfileResponse"];
1067
+ };
1042
1068
  };
1043
1069
  /** @description Invalid request */
1044
1070
  400: {
@@ -1118,12 +1144,13 @@ interface paths {
1118
1144
  429: components["responses"]["ApiRateLimitExceeded"];
1119
1145
  };
1120
1146
  };
1147
+ delete?: never;
1121
1148
  options?: never;
1122
1149
  head?: never;
1123
1150
  patch?: never;
1124
1151
  trace?: never;
1125
1152
  };
1126
- "/v1/profile-comparisons": {
1153
+ "/v1/reference-profiles/from-roast": {
1127
1154
  parameters: {
1128
1155
  query?: never;
1129
1156
  header?: never;
@@ -1132,22 +1159,24 @@ interface paths {
1132
1159
  };
1133
1160
  get?: never;
1134
1161
  put?: never;
1135
- /** Compare two immutable profile revisions */
1162
+ /** Snapshot an executed roast as a reference profile */
1136
1163
  post: {
1137
1164
  parameters: {
1138
1165
  query?: never;
1139
- header?: never;
1166
+ header: {
1167
+ "idempotency-key": string;
1168
+ };
1140
1169
  path?: never;
1141
1170
  cookie?: never;
1142
1171
  };
1143
1172
  requestBody: {
1144
1173
  content: {
1145
- "application/json": components["schemas"]["ProfileComparisonRequest"];
1174
+ "application/json": components["schemas"]["ReferenceProfileFromRoastRequest"];
1146
1175
  };
1147
1176
  };
1148
1177
  responses: {
1149
- /** @description Deterministic measured deltas */
1150
- 200: {
1178
+ /** @description Created immutable roast snapshot */
1179
+ 201: {
1151
1180
  headers: {
1152
1181
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1153
1182
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -1158,7 +1187,7 @@ interface paths {
1158
1187
  [name: string]: unknown;
1159
1188
  };
1160
1189
  content: {
1161
- "application/json": components["schemas"]["ProfileComparisonResponse"];
1190
+ "application/json": components["schemas"]["ReferenceProfileResponse"];
1162
1191
  };
1163
1192
  };
1164
1193
  /** @description Invalid request */
@@ -1245,7 +1274,7 @@ interface paths {
1245
1274
  patch?: never;
1246
1275
  trace?: never;
1247
1276
  };
1248
- "/v1/account-deletion": {
1277
+ "/v1/reference-profiles/{id}/roast-links/{roastId}": {
1249
1278
  parameters: {
1250
1279
  query?: never;
1251
1280
  header?: never;
@@ -1253,273 +1282,343 @@ interface paths {
1253
1282
  cookie?: never;
1254
1283
  };
1255
1284
  get?: never;
1256
- put?: never;
1257
- /**
1258
- * Accept deletion of the authenticated account
1259
- * @description Cryptographically validates a recent purpose-bound coffee-app assertion and atomically creates or replays the permanent Parchment-owned deletion operation.
1260
- */
1261
- post: {
1285
+ /** Link a reference profile to an owned roast */
1286
+ put: {
1262
1287
  parameters: {
1263
1288
  query?: never;
1264
1289
  header?: never;
1265
- path?: never;
1266
- cookie?: never;
1267
- };
1268
- requestBody: {
1269
- content: {
1270
- "application/json": {
1271
- assertion: string;
1272
- };
1290
+ path: {
1291
+ id: string;
1292
+ roastId: number;
1273
1293
  };
1294
+ cookie?: never;
1274
1295
  };
1296
+ requestBody?: never;
1275
1297
  responses: {
1276
- /** @description Existing accepted deletion operation */
1277
- 200: {
1278
- headers: {
1279
- /** @description Sensitive lifecycle responses are never cached */
1280
- "Cache-Control"?: string;
1281
- [name: string]: unknown;
1282
- };
1283
- content: {
1284
- "application/json": components["schemas"]["AccountDeletionOperation"];
1285
- };
1286
- };
1287
- /** @description Deletion accepted; the durable worker owns convergence */
1288
- 202: {
1298
+ /** @description Linked */
1299
+ 204: {
1289
1300
  headers: {
1290
- /** @description Sensitive lifecycle responses are never cached */
1291
- "Cache-Control"?: string;
1301
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1302
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1303
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1304
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1305
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1306
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1292
1307
  [name: string]: unknown;
1293
1308
  };
1294
- content: {
1295
- "application/json": components["schemas"]["AccountDeletionOperation"];
1296
- };
1309
+ content?: never;
1297
1310
  };
1298
- /** @description Malformed assertion request */
1311
+ /** @description Invalid request */
1299
1312
  400: {
1300
1313
  headers: {
1314
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1315
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1316
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1317
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1318
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1319
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1301
1320
  [name: string]: unknown;
1302
1321
  };
1303
1322
  content: {
1304
1323
  "application/json": components["schemas"]["ErrorResponse"];
1305
1324
  };
1306
1325
  };
1307
- /** @description A valid Supabase user session is required */
1326
+ /** @description Authentication required */
1308
1327
  401: {
1309
1328
  headers: {
1329
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1330
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1331
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1332
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1333
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1334
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1310
1335
  [name: string]: unknown;
1311
1336
  };
1312
1337
  content: {
1313
1338
  "application/json": components["schemas"]["ErrorResponse"];
1314
1339
  };
1315
1340
  };
1316
- /** @description Recent account-deletion reauthentication is invalid */
1341
+ /** @description Insufficient entitlement (plan or role) */
1317
1342
  403: {
1318
1343
  headers: {
1344
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1345
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1346
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1347
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1348
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1349
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1319
1350
  [name: string]: unknown;
1320
1351
  };
1321
1352
  content: {
1322
1353
  "application/json": components["schemas"]["ErrorResponse"];
1323
1354
  };
1324
1355
  };
1325
- /** @description Account deletion is blocked by deterministic local work */
1326
- 409: {
1356
+ /** @description Reference profile or source roast not found */
1357
+ 404: {
1327
1358
  headers: {
1359
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1360
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1361
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1362
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1363
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1364
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1328
1365
  [name: string]: unknown;
1329
1366
  };
1330
1367
  content: {
1331
1368
  "application/json": components["schemas"]["ErrorResponse"];
1332
1369
  };
1333
1370
  };
1334
- /** @description The activated lifecycle or storage is unavailable */
1335
- 503: {
1371
+ /** @description Revision, idempotency, or concurrency conflict */
1372
+ 409: {
1336
1373
  headers: {
1374
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1375
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1376
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1377
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1378
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1379
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1337
1380
  [name: string]: unknown;
1338
1381
  };
1339
1382
  content: {
1340
1383
  "application/json": components["schemas"]["ErrorResponse"];
1341
1384
  };
1342
1385
  };
1386
+ 429: components["responses"]["ApiRateLimitExceeded"];
1343
1387
  };
1344
1388
  };
1345
- delete?: never;
1346
- options?: never;
1347
- head?: never;
1348
- patch?: never;
1349
- trace?: never;
1350
- };
1351
- "/v1/billing/checkout-sessions": {
1352
- parameters: {
1353
- query?: never;
1354
- header?: never;
1355
- path?: never;
1356
- cookie?: never;
1357
- };
1358
- get?: never;
1359
- put?: never;
1360
- /** Create or replay an embedded Stripe Checkout Session */
1361
- post: {
1389
+ post?: never;
1390
+ /** Unlink a reference profile from an owned roast */
1391
+ delete: {
1362
1392
  parameters: {
1363
1393
  query?: never;
1364
1394
  header?: never;
1365
- path?: never;
1366
- cookie?: never;
1367
- };
1368
- requestBody: {
1369
- content: {
1370
- "application/json": {
1371
- /** Format: uuid */
1372
- requestId: string;
1373
- purchaseItems: {
1374
- purchaseKey: string;
1375
- /** @default 1 */
1376
- quantity?: number;
1377
- }[];
1378
- };
1395
+ path: {
1396
+ id: string;
1397
+ roastId: number;
1379
1398
  };
1399
+ cookie?: never;
1380
1400
  };
1401
+ requestBody?: never;
1381
1402
  responses: {
1382
- /** @description Created or replayed Checkout Session */
1383
- 200: {
1403
+ /** @description Unlinked */
1404
+ 204: {
1384
1405
  headers: {
1385
- /** @description Billing responses are never shared-cacheable */
1386
- "Cache-Control"?: string;
1406
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1407
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1408
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1409
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1410
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1411
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1387
1412
  [name: string]: unknown;
1388
1413
  };
1389
- content: {
1390
- "application/json": components["schemas"]["BillingCheckoutSession"];
1391
- };
1414
+ content?: never;
1392
1415
  };
1393
- /** @description Unknown product or definite provider rejection */
1416
+ /** @description Invalid request */
1394
1417
  400: {
1395
1418
  headers: {
1419
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1420
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1421
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1422
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1423
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1424
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1396
1425
  [name: string]: unknown;
1397
1426
  };
1398
1427
  content: {
1399
1428
  "application/json": components["schemas"]["ErrorResponse"];
1400
1429
  };
1401
1430
  };
1402
- /** @description A valid Supabase user session is required */
1431
+ /** @description Authentication required */
1403
1432
  401: {
1404
1433
  headers: {
1405
- [name: string]: unknown;
1406
- };
1434
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1435
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1436
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1437
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1438
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1439
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1440
+ [name: string]: unknown;
1441
+ };
1407
1442
  content: {
1408
1443
  "application/json": components["schemas"]["ErrorResponse"];
1409
1444
  };
1410
1445
  };
1411
- /** @description The operation conflicts with current durable state */
1412
- 409: {
1446
+ /** @description Insufficient entitlement (plan or role) */
1447
+ 403: {
1413
1448
  headers: {
1449
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1450
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1451
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1452
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1453
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1454
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1414
1455
  [name: string]: unknown;
1415
1456
  };
1416
1457
  content: {
1417
1458
  "application/json": components["schemas"]["ErrorResponse"];
1418
1459
  };
1419
1460
  };
1420
- /** @description The billing JSON request body exceeds the maximum size */
1421
- 413: {
1461
+ /** @description Reference profile or source roast not found */
1462
+ 404: {
1422
1463
  headers: {
1464
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1465
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1466
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1467
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1468
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1469
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1423
1470
  [name: string]: unknown;
1424
1471
  };
1425
1472
  content: {
1426
1473
  "application/json": components["schemas"]["ErrorResponse"];
1427
1474
  };
1428
1475
  };
1429
- /** @description Billing storage or provider state is unavailable */
1430
- 503: {
1476
+ /** @description Revision, idempotency, or concurrency conflict */
1477
+ 409: {
1431
1478
  headers: {
1479
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1480
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1481
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1482
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1483
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1484
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1432
1485
  [name: string]: unknown;
1433
1486
  };
1434
1487
  content: {
1435
1488
  "application/json": components["schemas"]["ErrorResponse"];
1436
1489
  };
1437
1490
  };
1491
+ 429: components["responses"]["ApiRateLimitExceeded"];
1438
1492
  };
1439
1493
  };
1440
- delete?: never;
1441
1494
  options?: never;
1442
1495
  head?: never;
1443
1496
  patch?: never;
1444
1497
  trace?: never;
1445
1498
  };
1446
- "/v1/billing/checkout-sessions/{admissionId}": {
1499
+ "/v1/profile-comparisons": {
1447
1500
  parameters: {
1448
1501
  query?: never;
1449
1502
  header?: never;
1450
1503
  path?: never;
1451
1504
  cookie?: never;
1452
1505
  };
1453
- /** Read owner-bound Checkout admission state */
1454
- get: {
1506
+ get?: never;
1507
+ put?: never;
1508
+ /** Compare two immutable profile revisions */
1509
+ post: {
1455
1510
  parameters: {
1456
1511
  query?: never;
1457
1512
  header?: never;
1458
- path: {
1459
- admissionId: string;
1460
- };
1513
+ path?: never;
1461
1514
  cookie?: never;
1462
1515
  };
1463
- requestBody?: never;
1516
+ requestBody: {
1517
+ content: {
1518
+ "application/json": components["schemas"]["ProfileComparisonRequest"];
1519
+ };
1520
+ };
1464
1521
  responses: {
1465
- /** @description Checkout admission state */
1522
+ /** @description Deterministic measured deltas */
1466
1523
  200: {
1467
1524
  headers: {
1468
- /** @description Billing responses are never shared-cacheable */
1469
- "Cache-Control"?: string;
1525
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1526
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1527
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1528
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1529
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1530
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1470
1531
  [name: string]: unknown;
1471
1532
  };
1472
1533
  content: {
1473
- "application/json": components["schemas"]["BillingCheckoutSession"];
1534
+ "application/json": components["schemas"]["ProfileComparisonResponse"];
1474
1535
  };
1475
1536
  };
1476
- /** @description A valid Supabase user session is required */
1537
+ /** @description Invalid request */
1538
+ 400: {
1539
+ headers: {
1540
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1541
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1542
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1543
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1544
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1545
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1546
+ [name: string]: unknown;
1547
+ };
1548
+ content: {
1549
+ "application/json": components["schemas"]["ErrorResponse"];
1550
+ };
1551
+ };
1552
+ /** @description Authentication required */
1477
1553
  401: {
1478
1554
  headers: {
1555
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1556
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1557
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1558
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1559
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1560
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1479
1561
  [name: string]: unknown;
1480
1562
  };
1481
1563
  content: {
1482
1564
  "application/json": components["schemas"]["ErrorResponse"];
1483
1565
  };
1484
1566
  };
1485
- /** @description Admission not found */
1486
- 404: {
1567
+ /** @description Insufficient entitlement (plan or role) */
1568
+ 403: {
1487
1569
  headers: {
1570
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1571
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1572
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1573
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1574
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1575
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1488
1576
  [name: string]: unknown;
1489
1577
  };
1490
1578
  content: {
1491
1579
  "application/json": components["schemas"]["ErrorResponse"];
1492
1580
  };
1493
1581
  };
1494
- /** @description The operation conflicts with current durable state */
1495
- 409: {
1582
+ /** @description Reference profile or source roast not found */
1583
+ 404: {
1496
1584
  headers: {
1585
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1586
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1587
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1588
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1589
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1590
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1497
1591
  [name: string]: unknown;
1498
1592
  };
1499
1593
  content: {
1500
1594
  "application/json": components["schemas"]["ErrorResponse"];
1501
1595
  };
1502
1596
  };
1503
- /** @description Billing storage or provider state is unavailable */
1504
- 503: {
1597
+ /** @description Revision, idempotency, or concurrency conflict */
1598
+ 409: {
1505
1599
  headers: {
1600
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1601
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1602
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1603
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
1604
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
1605
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
1506
1606
  [name: string]: unknown;
1507
1607
  };
1508
1608
  content: {
1509
1609
  "application/json": components["schemas"]["ErrorResponse"];
1510
1610
  };
1511
1611
  };
1612
+ 429: components["responses"]["ApiRateLimitExceeded"];
1512
1613
  };
1513
1614
  };
1514
- put?: never;
1515
- post?: never;
1516
1615
  delete?: never;
1517
1616
  options?: never;
1518
1617
  head?: never;
1519
1618
  patch?: never;
1520
1619
  trace?: never;
1521
1620
  };
1522
- "/v1/billing/checkout-sessions/{admissionId}/reconcile": {
1621
+ "/v1/account-deletion": {
1523
1622
  parameters: {
1524
1623
  query?: never;
1525
1624
  header?: never;
@@ -1528,27 +1627,54 @@ interface paths {
1528
1627
  };
1529
1628
  get?: never;
1530
1629
  put?: never;
1531
- /** Authoritatively reconcile a Checkout admission */
1630
+ /**
1631
+ * Accept deletion of the authenticated account
1632
+ * @description Cryptographically validates a recent purpose-bound coffee-app assertion and atomically creates or replays the permanent Parchment-owned deletion operation.
1633
+ */
1532
1634
  post: {
1533
1635
  parameters: {
1534
1636
  query?: never;
1535
1637
  header?: never;
1536
- path: {
1537
- admissionId: string;
1538
- };
1638
+ path?: never;
1539
1639
  cookie?: never;
1540
1640
  };
1541
- requestBody?: never;
1641
+ requestBody: {
1642
+ content: {
1643
+ "application/json": {
1644
+ assertion: string;
1645
+ };
1646
+ };
1647
+ };
1542
1648
  responses: {
1543
- /** @description Reconciled Checkout admission */
1649
+ /** @description Existing accepted deletion operation */
1544
1650
  200: {
1545
1651
  headers: {
1546
- /** @description Billing responses are never shared-cacheable */
1652
+ /** @description Sensitive lifecycle responses are never cached */
1547
1653
  "Cache-Control"?: string;
1548
1654
  [name: string]: unknown;
1549
1655
  };
1550
1656
  content: {
1551
- "application/json": components["schemas"]["BillingCheckoutSession"];
1657
+ "application/json": components["schemas"]["AccountDeletionOperation"];
1658
+ };
1659
+ };
1660
+ /** @description Deletion accepted; the durable worker owns convergence */
1661
+ 202: {
1662
+ headers: {
1663
+ /** @description Sensitive lifecycle responses are never cached */
1664
+ "Cache-Control"?: string;
1665
+ [name: string]: unknown;
1666
+ };
1667
+ content: {
1668
+ "application/json": components["schemas"]["AccountDeletionOperation"];
1669
+ };
1670
+ };
1671
+ /** @description Malformed assertion request */
1672
+ 400: {
1673
+ headers: {
1674
+ [name: string]: unknown;
1675
+ };
1676
+ content: {
1677
+ "application/json": components["schemas"]["ErrorResponse"];
1552
1678
  };
1553
1679
  };
1554
1680
  /** @description A valid Supabase user session is required */
@@ -1560,8 +1686,8 @@ interface paths {
1560
1686
  "application/json": components["schemas"]["ErrorResponse"];
1561
1687
  };
1562
1688
  };
1563
- /** @description Admission not found */
1564
- 404: {
1689
+ /** @description Recent account-deletion reauthentication is invalid */
1690
+ 403: {
1565
1691
  headers: {
1566
1692
  [name: string]: unknown;
1567
1693
  };
@@ -1569,7 +1695,7 @@ interface paths {
1569
1695
  "application/json": components["schemas"]["ErrorResponse"];
1570
1696
  };
1571
1697
  };
1572
- /** @description The operation conflicts with current durable state */
1698
+ /** @description Account deletion is blocked by deterministic local work */
1573
1699
  409: {
1574
1700
  headers: {
1575
1701
  [name: string]: unknown;
@@ -1578,7 +1704,7 @@ interface paths {
1578
1704
  "application/json": components["schemas"]["ErrorResponse"];
1579
1705
  };
1580
1706
  };
1581
- /** @description Billing storage or provider state is unavailable */
1707
+ /** @description The activated lifecycle or storage is unavailable */
1582
1708
  503: {
1583
1709
  headers: {
1584
1710
  [name: string]: unknown;
@@ -1595,7 +1721,7 @@ interface paths {
1595
1721
  patch?: never;
1596
1722
  trace?: never;
1597
1723
  };
1598
- "/v1/billing/stripe/webhook": {
1724
+ "/v1/billing/checkout-sessions": {
1599
1725
  parameters: {
1600
1726
  query?: never;
1601
1727
  header?: never;
@@ -1604,35 +1730,40 @@ interface paths {
1604
1730
  };
1605
1731
  get?: never;
1606
1732
  put?: never;
1607
- /**
1608
- * Receive verified Stripe billing deliveries
1609
- * @description Verifies the Stripe signature against the untouched raw body before parsing and settles through the canonical atomic billing RPC.
1610
- */
1733
+ /** Create or replay an embedded Stripe Checkout Session */
1611
1734
  post: {
1612
1735
  parameters: {
1613
1736
  query?: never;
1614
- header: {
1615
- "stripe-signature": string;
1616
- };
1737
+ header?: never;
1617
1738
  path?: never;
1618
1739
  cookie?: never;
1619
1740
  };
1620
- requestBody?: never;
1741
+ requestBody: {
1742
+ content: {
1743
+ "application/json": {
1744
+ /** Format: uuid */
1745
+ requestId: string;
1746
+ purchaseItems: {
1747
+ purchaseKey: string;
1748
+ /** @default 1 */
1749
+ quantity?: number;
1750
+ }[];
1751
+ };
1752
+ };
1753
+ };
1621
1754
  responses: {
1622
- /** @description Delivery settled or deterministically ignored */
1755
+ /** @description Created or replayed Checkout Session */
1623
1756
  200: {
1624
1757
  headers: {
1758
+ /** @description Billing responses are never shared-cacheable */
1759
+ "Cache-Control"?: string;
1625
1760
  [name: string]: unknown;
1626
1761
  };
1627
1762
  content: {
1628
- "application/json": {
1629
- /** @enum {boolean} */
1630
- received: true;
1631
- outcome: string;
1632
- };
1763
+ "application/json": components["schemas"]["BillingCheckoutSession"];
1633
1764
  };
1634
1765
  };
1635
- /** @description Signature or provider payload is invalid */
1766
+ /** @description Unknown product or definite provider rejection */
1636
1767
  400: {
1637
1768
  headers: {
1638
1769
  [name: string]: unknown;
@@ -1641,7 +1772,25 @@ interface paths {
1641
1772
  "application/json": components["schemas"]["ErrorResponse"];
1642
1773
  };
1643
1774
  };
1644
- /** @description Provider payload exceeds the bounded webhook body limit */
1775
+ /** @description A valid Supabase user session is required */
1776
+ 401: {
1777
+ headers: {
1778
+ [name: string]: unknown;
1779
+ };
1780
+ content: {
1781
+ "application/json": components["schemas"]["ErrorResponse"];
1782
+ };
1783
+ };
1784
+ /** @description The operation conflicts with current durable state */
1785
+ 409: {
1786
+ headers: {
1787
+ [name: string]: unknown;
1788
+ };
1789
+ content: {
1790
+ "application/json": components["schemas"]["ErrorResponse"];
1791
+ };
1792
+ };
1793
+ /** @description The billing JSON request body exceeds the maximum size */
1645
1794
  413: {
1646
1795
  headers: {
1647
1796
  [name: string]: unknown;
@@ -1650,7 +1799,7 @@ interface paths {
1650
1799
  "application/json": components["schemas"]["ErrorResponse"];
1651
1800
  };
1652
1801
  };
1653
- /** @description Retryable provider or storage failure */
1802
+ /** @description Billing storage or provider state is unavailable */
1654
1803
  503: {
1655
1804
  headers: {
1656
1805
  [name: string]: unknown;
@@ -1667,26 +1816,250 @@ interface paths {
1667
1816
  patch?: never;
1668
1817
  trace?: never;
1669
1818
  };
1670
- "/v1/webhooks/resend/market-brief": {
1819
+ "/v1/billing/checkout-sessions/{admissionId}": {
1671
1820
  parameters: {
1672
1821
  query?: never;
1673
1822
  header?: never;
1674
1823
  path?: never;
1675
1824
  cookie?: never;
1676
1825
  };
1677
- get?: never;
1678
- put?: never;
1679
- /**
1680
- * Receive verified Market Brief provider events
1681
- * @description Verifies the Resend Svix signature against the untouched raw body, then idempotently settles provider opt-out or suppression state under Parchment authority.
1682
- */
1683
- post: {
1826
+ /** Read owner-bound Checkout admission state */
1827
+ get: {
1684
1828
  parameters: {
1685
1829
  query?: never;
1686
- header: {
1687
- "svix-id": string;
1688
- "svix-timestamp": string;
1689
- "svix-signature": string;
1830
+ header?: never;
1831
+ path: {
1832
+ admissionId: string;
1833
+ };
1834
+ cookie?: never;
1835
+ };
1836
+ requestBody?: never;
1837
+ responses: {
1838
+ /** @description Checkout admission state */
1839
+ 200: {
1840
+ headers: {
1841
+ /** @description Billing responses are never shared-cacheable */
1842
+ "Cache-Control"?: string;
1843
+ [name: string]: unknown;
1844
+ };
1845
+ content: {
1846
+ "application/json": components["schemas"]["BillingCheckoutSession"];
1847
+ };
1848
+ };
1849
+ /** @description A valid Supabase user session is required */
1850
+ 401: {
1851
+ headers: {
1852
+ [name: string]: unknown;
1853
+ };
1854
+ content: {
1855
+ "application/json": components["schemas"]["ErrorResponse"];
1856
+ };
1857
+ };
1858
+ /** @description Admission not found */
1859
+ 404: {
1860
+ headers: {
1861
+ [name: string]: unknown;
1862
+ };
1863
+ content: {
1864
+ "application/json": components["schemas"]["ErrorResponse"];
1865
+ };
1866
+ };
1867
+ /** @description The operation conflicts with current durable state */
1868
+ 409: {
1869
+ headers: {
1870
+ [name: string]: unknown;
1871
+ };
1872
+ content: {
1873
+ "application/json": components["schemas"]["ErrorResponse"];
1874
+ };
1875
+ };
1876
+ /** @description Billing storage or provider state is unavailable */
1877
+ 503: {
1878
+ headers: {
1879
+ [name: string]: unknown;
1880
+ };
1881
+ content: {
1882
+ "application/json": components["schemas"]["ErrorResponse"];
1883
+ };
1884
+ };
1885
+ };
1886
+ };
1887
+ put?: never;
1888
+ post?: never;
1889
+ delete?: never;
1890
+ options?: never;
1891
+ head?: never;
1892
+ patch?: never;
1893
+ trace?: never;
1894
+ };
1895
+ "/v1/billing/checkout-sessions/{admissionId}/reconcile": {
1896
+ parameters: {
1897
+ query?: never;
1898
+ header?: never;
1899
+ path?: never;
1900
+ cookie?: never;
1901
+ };
1902
+ get?: never;
1903
+ put?: never;
1904
+ /** Authoritatively reconcile a Checkout admission */
1905
+ post: {
1906
+ parameters: {
1907
+ query?: never;
1908
+ header?: never;
1909
+ path: {
1910
+ admissionId: string;
1911
+ };
1912
+ cookie?: never;
1913
+ };
1914
+ requestBody?: never;
1915
+ responses: {
1916
+ /** @description Reconciled Checkout admission */
1917
+ 200: {
1918
+ headers: {
1919
+ /** @description Billing responses are never shared-cacheable */
1920
+ "Cache-Control"?: string;
1921
+ [name: string]: unknown;
1922
+ };
1923
+ content: {
1924
+ "application/json": components["schemas"]["BillingCheckoutSession"];
1925
+ };
1926
+ };
1927
+ /** @description A valid Supabase user session is required */
1928
+ 401: {
1929
+ headers: {
1930
+ [name: string]: unknown;
1931
+ };
1932
+ content: {
1933
+ "application/json": components["schemas"]["ErrorResponse"];
1934
+ };
1935
+ };
1936
+ /** @description Admission not found */
1937
+ 404: {
1938
+ headers: {
1939
+ [name: string]: unknown;
1940
+ };
1941
+ content: {
1942
+ "application/json": components["schemas"]["ErrorResponse"];
1943
+ };
1944
+ };
1945
+ /** @description The operation conflicts with current durable state */
1946
+ 409: {
1947
+ headers: {
1948
+ [name: string]: unknown;
1949
+ };
1950
+ content: {
1951
+ "application/json": components["schemas"]["ErrorResponse"];
1952
+ };
1953
+ };
1954
+ /** @description Billing storage or provider state is unavailable */
1955
+ 503: {
1956
+ headers: {
1957
+ [name: string]: unknown;
1958
+ };
1959
+ content: {
1960
+ "application/json": components["schemas"]["ErrorResponse"];
1961
+ };
1962
+ };
1963
+ };
1964
+ };
1965
+ delete?: never;
1966
+ options?: never;
1967
+ head?: never;
1968
+ patch?: never;
1969
+ trace?: never;
1970
+ };
1971
+ "/v1/billing/stripe/webhook": {
1972
+ parameters: {
1973
+ query?: never;
1974
+ header?: never;
1975
+ path?: never;
1976
+ cookie?: never;
1977
+ };
1978
+ get?: never;
1979
+ put?: never;
1980
+ /**
1981
+ * Receive verified Stripe billing deliveries
1982
+ * @description Verifies the Stripe signature against the untouched raw body before parsing and settles through the canonical atomic billing RPC.
1983
+ */
1984
+ post: {
1985
+ parameters: {
1986
+ query?: never;
1987
+ header: {
1988
+ "stripe-signature": string;
1989
+ };
1990
+ path?: never;
1991
+ cookie?: never;
1992
+ };
1993
+ requestBody?: never;
1994
+ responses: {
1995
+ /** @description Delivery settled or deterministically ignored */
1996
+ 200: {
1997
+ headers: {
1998
+ [name: string]: unknown;
1999
+ };
2000
+ content: {
2001
+ "application/json": {
2002
+ /** @enum {boolean} */
2003
+ received: true;
2004
+ outcome: string;
2005
+ };
2006
+ };
2007
+ };
2008
+ /** @description Signature or provider payload is invalid */
2009
+ 400: {
2010
+ headers: {
2011
+ [name: string]: unknown;
2012
+ };
2013
+ content: {
2014
+ "application/json": components["schemas"]["ErrorResponse"];
2015
+ };
2016
+ };
2017
+ /** @description Provider payload exceeds the bounded webhook body limit */
2018
+ 413: {
2019
+ headers: {
2020
+ [name: string]: unknown;
2021
+ };
2022
+ content: {
2023
+ "application/json": components["schemas"]["ErrorResponse"];
2024
+ };
2025
+ };
2026
+ /** @description Retryable provider or storage failure */
2027
+ 503: {
2028
+ headers: {
2029
+ [name: string]: unknown;
2030
+ };
2031
+ content: {
2032
+ "application/json": components["schemas"]["ErrorResponse"];
2033
+ };
2034
+ };
2035
+ };
2036
+ };
2037
+ delete?: never;
2038
+ options?: never;
2039
+ head?: never;
2040
+ patch?: never;
2041
+ trace?: never;
2042
+ };
2043
+ "/v1/webhooks/resend/market-brief": {
2044
+ parameters: {
2045
+ query?: never;
2046
+ header?: never;
2047
+ path?: never;
2048
+ cookie?: never;
2049
+ };
2050
+ get?: never;
2051
+ put?: never;
2052
+ /**
2053
+ * Receive verified Market Brief provider events
2054
+ * @description Verifies the Resend Svix signature against the untouched raw body, then idempotently settles provider opt-out or suppression state under Parchment authority.
2055
+ */
2056
+ post: {
2057
+ parameters: {
2058
+ query?: never;
2059
+ header: {
2060
+ "svix-id": string;
2061
+ "svix-timestamp": string;
2062
+ "svix-signature": string;
1690
2063
  };
1691
2064
  path?: never;
1692
2065
  cookie?: never;
@@ -12389,7 +12762,7 @@ interface paths {
12389
12762
  };
12390
12763
  };
12391
12764
  429: components["responses"]["ApiRateLimitExceeded"];
12392
- /** @description AI provider is temporarily unavailable */
12765
+ /** @description AI provider or completed-action storage is temporarily unavailable */
12393
12766
  503: {
12394
12767
  headers: {
12395
12768
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
@@ -12961,6 +13334,8 @@ interface components {
12961
13334
  revision: number;
12962
13335
  /** @enum {string} */
12963
13336
  sourceClass: "artisan_upload" | "executed_roast" | "generated_revision";
13337
+ /** Format: uuid */
13338
+ parentRevisionId: string | null;
12964
13339
  sourceRoast: {
12965
13340
  id: number;
12966
13341
  revision: string;
@@ -13027,23 +13402,79 @@ interface components {
13027
13402
  version: "v1";
13028
13403
  };
13029
13404
  };
13030
- ReferenceProfileImportRequest: {
13031
- title?: string;
13032
- notes?: string;
13033
- fileName: string;
13034
- fileContent: string;
13035
- fileSize?: number;
13036
- };
13037
- ReferenceProfileFromRoastRequest: {
13038
- roastId: number;
13039
- roastRevision: string;
13040
- title?: string;
13041
- notes?: string;
13042
- };
13043
- ProfileComparisonResponse: {
13405
+ ReferenceProfileGenerationPreviewResponse: {
13044
13406
  data: {
13407
+ /** Format: uuid */
13408
+ parentRevisionId: string;
13409
+ title: string;
13410
+ changes: {
13411
+ temperatureAdjustments: {
13412
+ /** @enum {string} */
13413
+ kind: "bean_temperature" | "environmental_temperature";
13414
+ startMilliseconds: number;
13415
+ endMilliseconds: number;
13416
+ delta: number;
13417
+ }[];
13418
+ };
13419
+ chart: components["schemas"]["ReferenceProfileChart"];
13420
+ /** @enum {boolean} */
13421
+ exportEligible: true;
13422
+ };
13423
+ meta: {
13045
13424
  /** @enum {string} */
13046
- alignment: "charge";
13425
+ resource: "reference-profile-previews";
13426
+ /** @enum {string} */
13427
+ namespace: "/v1/reference-profiles";
13428
+ /** @enum {string} */
13429
+ version: "v1";
13430
+ };
13431
+ };
13432
+ ReferenceProfileGenerationRequest: {
13433
+ title: string;
13434
+ notes?: string;
13435
+ changes: {
13436
+ temperatureAdjustments: {
13437
+ /** @enum {string} */
13438
+ kind: "bean_temperature" | "environmental_temperature";
13439
+ startMilliseconds: number;
13440
+ endMilliseconds: number;
13441
+ delta: number;
13442
+ }[];
13443
+ };
13444
+ };
13445
+ ReferenceProfileGenerationExportResponse: {
13446
+ data: {
13447
+ /** @enum {string} */
13448
+ fileName: "Purveyors-reference.alog";
13449
+ fileContent: string;
13450
+ fileSize: number;
13451
+ };
13452
+ meta: {
13453
+ /** @enum {string} */
13454
+ resource: "reference-profile-exports";
13455
+ /** @enum {string} */
13456
+ namespace: "/v1/reference-profiles";
13457
+ /** @enum {string} */
13458
+ version: "v1";
13459
+ };
13460
+ };
13461
+ ReferenceProfileImportRequest: {
13462
+ title?: string;
13463
+ notes?: string;
13464
+ fileName: string;
13465
+ fileContent: string;
13466
+ fileSize?: number;
13467
+ };
13468
+ ReferenceProfileFromRoastRequest: {
13469
+ roastId: number;
13470
+ roastRevision: string;
13471
+ title?: string;
13472
+ notes?: string;
13473
+ };
13474
+ ProfileComparisonResponse: {
13475
+ data: {
13476
+ /** @enum {string} */
13477
+ alignment: "charge";
13047
13478
  /** @enum {string} */
13048
13479
  targetUnit: "F" | "C";
13049
13480
  left: {
@@ -15213,7 +15644,7 @@ interface components {
15213
15644
  success: true;
15214
15645
  id: number;
15215
15646
  /** @enum {string} */
15216
- message: "Bean added to inventory" | "Bean updated" | "Roast session created" | "Roast notes updated" | "Sale recorded";
15647
+ message: "Bean added to inventory" | "Bean updated" | "Roast session created" | "Roast created from Artisan reference" | "Roast notes updated" | "Sale recorded";
15217
15648
  replayed: boolean;
15218
15649
  };
15219
15650
  meta: {
@@ -15276,10 +15707,31 @@ interface components {
15276
15707
  coffee_name?: string;
15277
15708
  batch_name: string;
15278
15709
  roast_date?: "" | string;
15279
- oz_in?: number | string;
15710
+ oz_in?: "" | number | string;
15711
+ oz_out?: "" | number | string;
15280
15712
  roast_notes?: string;
15713
+ roast_targets?: string;
15281
15714
  roaster_type?: string;
15282
15715
  };
15716
+ } | {
15717
+ /** @description Stable operation id. Repeating it with the same action payload replays the stored result; changing the payload returns 409. */
15718
+ executionId: string;
15719
+ /** @enum {string} */
15720
+ actionType: "create_roast_from_reference";
15721
+ fields: {
15722
+ /** Format: uuid */
15723
+ reference_profile_id: string;
15724
+ /** Format: uuid */
15725
+ reference_revision_id: string;
15726
+ coffee_id: number | string;
15727
+ coffee_name?: string;
15728
+ batch_name: string;
15729
+ roast_date?: "" | string;
15730
+ oz_in?: "" | number | string;
15731
+ oz_out?: "" | number | string;
15732
+ roast_notes?: string;
15733
+ roast_targets?: string;
15734
+ };
15283
15735
  } | {
15284
15736
  /** @description Stable operation id. Repeating it with the same action payload replays the stored result; changing the payload returns 409. */
15285
15737
  executionId: string;
@@ -16790,6 +17242,10 @@ interface components {
16790
17242
  }[];
16791
17243
  };
16792
17244
  includeUserMemory?: boolean;
17245
+ /** @description Owner-scoped confirmed-action execution to continue from after successful user approval. The server resolves the trusted result from its ledger; clients cannot supply result data. */
17246
+ completedAction?: {
17247
+ executionId: string;
17248
+ };
16793
17249
  };
16794
17250
  ConversationMemory: {
16795
17251
  content: string;
@@ -17008,6 +17464,7 @@ type RoastChartEvent = components["schemas"]["RoastChartEvent"];
17008
17464
  type ReferenceProfileImportRequest = NonNullable<paths["/v1/reference-profiles/imports"]["post"]["requestBody"]>["content"]["application/json"];
17009
17465
  type ReferenceProfileFromRoastRequest = NonNullable<paths["/v1/reference-profiles/from-roast"]["post"]["requestBody"]>["content"]["application/json"];
17010
17466
  type ReferenceProfileUpdateRequest = NonNullable<paths["/v1/reference-profiles/{id}"]["patch"]["requestBody"]>["content"]["application/json"];
17467
+ type ReferenceProfileGenerationRequest = NonNullable<paths["/v1/reference-profiles/{id}/revisions/{revisionId}/preview"]["post"]["requestBody"]>["content"]["application/json"];
17011
17468
  type ProfileComparisonRequest = NonNullable<paths["/v1/profile-comparisons"]["post"]["requestBody"]>["content"]["application/json"];
17012
17469
  /** Request body for {@link ParchmentClient.roasts.classify}. */
17013
17470
  type RoastClassificationRequest = NonNullable<paths["/v1/roasts/classify"]["post"]["requestBody"]>["content"]["application/json"];
@@ -22433,10 +22890,27 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
22433
22890
  coffee_name?: string;
22434
22891
  batch_name: string;
22435
22892
  roast_date?: "" | string;
22436
- oz_in?: number | string;
22893
+ oz_in?: "" | number | string;
22894
+ oz_out?: "" | number | string;
22437
22895
  roast_notes?: string;
22896
+ roast_targets?: string;
22438
22897
  roaster_type?: string;
22439
22898
  };
22899
+ } | {
22900
+ executionId: string;
22901
+ actionType: "create_roast_from_reference";
22902
+ fields: {
22903
+ reference_profile_id: string;
22904
+ reference_revision_id: string;
22905
+ coffee_id: number | string;
22906
+ coffee_name?: string;
22907
+ batch_name: string;
22908
+ roast_date?: "" | string;
22909
+ oz_in?: "" | number | string;
22910
+ oz_out?: "" | number | string;
22911
+ roast_notes?: string;
22912
+ roast_targets?: string;
22913
+ };
22440
22914
  } | {
22441
22915
  executionId: string;
22442
22916
  actionType: "update_roast_notes";
@@ -25090,7 +25564,307 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25090
25564
  "application/json": components["schemas"]["ErrorResponse"];
25091
25565
  };
25092
25566
  };
25093
- 404: {
25567
+ 404: {
25568
+ headers: {
25569
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25570
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25571
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25572
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25573
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25574
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25575
+ [name: string]: unknown;
25576
+ };
25577
+ content: {
25578
+ "application/json": components["schemas"]["ErrorResponse"];
25579
+ };
25580
+ };
25581
+ 429: components["responses"]["ApiRateLimitExceeded"];
25582
+ };
25583
+ }, {
25584
+ params: {
25585
+ path: {
25586
+ batchId: string;
25587
+ };
25588
+ };
25589
+ }, `${string}/${string}`>>;
25590
+ /**
25591
+ * Durably reserve a complete manual-batch request. Once accepted, clients
25592
+ * only need to persist the batch UUID.
25593
+ */
25594
+ reserveManualBatch: (body: ManualInventoryBatchReserveRequest) => Promise<openapi_fetch.FetchResponse<{
25595
+ parameters: {
25596
+ query?: never;
25597
+ header?: never;
25598
+ path?: never;
25599
+ cookie?: never;
25600
+ };
25601
+ requestBody?: {
25602
+ content: {
25603
+ "application/json": components["schemas"]["ManualInventoryBatchReserveRequest"];
25604
+ };
25605
+ };
25606
+ responses: {
25607
+ 201: {
25608
+ headers: {
25609
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25610
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25611
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25612
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25613
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25614
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25615
+ [name: string]: unknown;
25616
+ };
25617
+ content: {
25618
+ "application/json": components["schemas"]["ManualInventoryBatchLifecycleResponse"];
25619
+ };
25620
+ };
25621
+ 400: {
25622
+ headers: {
25623
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25624
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25625
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25626
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25627
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25628
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25629
+ [name: string]: unknown;
25630
+ };
25631
+ content: {
25632
+ "application/json": components["schemas"]["ErrorResponse"];
25633
+ };
25634
+ };
25635
+ 401: {
25636
+ headers: {
25637
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25638
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25639
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25640
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25641
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25642
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25643
+ [name: string]: unknown;
25644
+ };
25645
+ content: {
25646
+ "application/json": components["schemas"]["ErrorResponse"];
25647
+ };
25648
+ };
25649
+ 403: {
25650
+ headers: {
25651
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25652
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25653
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25654
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25655
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25656
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25657
+ [name: string]: unknown;
25658
+ };
25659
+ content: {
25660
+ "application/json": components["schemas"]["ErrorResponse"];
25661
+ };
25662
+ };
25663
+ 409: {
25664
+ headers: {
25665
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25666
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25667
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25668
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25669
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25670
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25671
+ [name: string]: unknown;
25672
+ };
25673
+ content: {
25674
+ "application/json": components["schemas"]["ErrorResponse"];
25675
+ };
25676
+ };
25677
+ 429: {
25678
+ headers: {
25679
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25680
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25681
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25682
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25683
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25684
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25685
+ "Retry-After": components["headers"]["Retry-After"];
25686
+ "X-RateLimit-Blocked-By": components["headers"]["X-RateLimit-Blocked-By"];
25687
+ [name: string]: unknown;
25688
+ };
25689
+ content: {
25690
+ "application/json": components["schemas"]["ErrorResponse"];
25691
+ };
25692
+ };
25693
+ 503: {
25694
+ headers: {
25695
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25696
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25697
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25698
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25699
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25700
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25701
+ [name: string]: unknown;
25702
+ };
25703
+ content: {
25704
+ "application/json": components["schemas"]["ErrorResponse"];
25705
+ };
25706
+ };
25707
+ };
25708
+ }, {
25709
+ body: {
25710
+ batchId: string;
25711
+ purchaseDate?: string;
25712
+ taxShipTotal?: number;
25713
+ notes?: string;
25714
+ items: components["schemas"]["ManualInventoryBatchItem"][];
25715
+ };
25716
+ }, `${string}/${string}`>>;
25717
+ /** Commit a reserved batch by UUID with no request body. */
25718
+ commitManualBatch: (batchId: string) => Promise<openapi_fetch.FetchResponse<{
25719
+ parameters: {
25720
+ query?: never;
25721
+ header?: never;
25722
+ path: {
25723
+ batchId: string;
25724
+ };
25725
+ cookie?: never;
25726
+ };
25727
+ requestBody?: never;
25728
+ responses: {
25729
+ 200: {
25730
+ headers: {
25731
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25732
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25733
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25734
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25735
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25736
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25737
+ [name: string]: unknown;
25738
+ };
25739
+ content: {
25740
+ "application/json": components["schemas"]["ManualInventoryBatchLifecycleResponse"];
25741
+ };
25742
+ };
25743
+ 401: {
25744
+ headers: {
25745
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25746
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25747
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25748
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25749
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25750
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25751
+ [name: string]: unknown;
25752
+ };
25753
+ content: {
25754
+ "application/json": components["schemas"]["ErrorResponse"];
25755
+ };
25756
+ };
25757
+ 403: {
25758
+ headers: {
25759
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25760
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25761
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25762
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25763
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25764
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25765
+ [name: string]: unknown;
25766
+ };
25767
+ content: {
25768
+ "application/json": components["schemas"]["ErrorResponse"];
25769
+ };
25770
+ };
25771
+ 404: {
25772
+ headers: {
25773
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25774
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25775
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25776
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25777
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25778
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25779
+ [name: string]: unknown;
25780
+ };
25781
+ content: {
25782
+ "application/json": components["schemas"]["ErrorResponse"];
25783
+ };
25784
+ };
25785
+ 429: {
25786
+ headers: {
25787
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25788
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25789
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25790
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25791
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25792
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25793
+ "Retry-After": components["headers"]["Retry-After"];
25794
+ "X-RateLimit-Blocked-By": components["headers"]["X-RateLimit-Blocked-By"];
25795
+ [name: string]: unknown;
25796
+ };
25797
+ content: {
25798
+ "application/json": components["schemas"]["ErrorResponse"];
25799
+ };
25800
+ };
25801
+ 503: {
25802
+ headers: {
25803
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25804
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25805
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25806
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25807
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25808
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25809
+ [name: string]: unknown;
25810
+ };
25811
+ content: {
25812
+ "application/json": components["schemas"]["ErrorResponse"];
25813
+ };
25814
+ };
25815
+ };
25816
+ }, {
25817
+ params: {
25818
+ path: {
25819
+ batchId: string;
25820
+ };
25821
+ };
25822
+ }, `${string}/${string}`>>;
25823
+ /**
25824
+ * Get unknown, accepted, in-progress, completed, or terminal-rejected
25825
+ * state. Unknown is explicitly nonterminal, including missing or
25826
+ * cross-tenant UUIDs, so clients retain the UUID and retry.
25827
+ */
25828
+ getManualBatchStatus: (batchId: string) => Promise<openapi_fetch.FetchResponse<{
25829
+ parameters: {
25830
+ query?: never;
25831
+ header?: never;
25832
+ path: {
25833
+ batchId: string;
25834
+ };
25835
+ cookie?: never;
25836
+ };
25837
+ requestBody?: never;
25838
+ responses: {
25839
+ 200: {
25840
+ headers: {
25841
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25842
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25843
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25844
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25845
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25846
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25847
+ [name: string]: unknown;
25848
+ };
25849
+ content: {
25850
+ "application/json": components["schemas"]["ManualInventoryBatchLifecycleResponse"];
25851
+ };
25852
+ };
25853
+ 401: {
25854
+ headers: {
25855
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25856
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
25857
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
25858
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25859
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25860
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25861
+ [name: string]: unknown;
25862
+ };
25863
+ content: {
25864
+ "application/json": components["schemas"]["ErrorResponse"];
25865
+ };
25866
+ };
25867
+ 403: {
25094
25868
  headers: {
25095
25869
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25096
25870
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -25113,11 +25887,8 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25113
25887
  };
25114
25888
  };
25115
25889
  }, `${string}/${string}`>>;
25116
- /**
25117
- * Durably reserve a complete manual-batch request. Once accepted, clients
25118
- * only need to persist the batch UUID.
25119
- */
25120
- reserveManualBatch: (body: ManualInventoryBatchReserveRequest) => Promise<openapi_fetch.FetchResponse<{
25890
+ /** Durably reserve canonical catalog-backed inventory intent. */
25891
+ reserveCatalogBatch: (body: CatalogInventoryBatchReserveRequest) => Promise<openapi_fetch.FetchResponse<{
25121
25892
  parameters: {
25122
25893
  query?: never;
25123
25894
  header?: never;
@@ -25126,7 +25897,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25126
25897
  };
25127
25898
  requestBody?: {
25128
25899
  content: {
25129
- "application/json": components["schemas"]["ManualInventoryBatchReserveRequest"];
25900
+ "application/json": components["schemas"]["CatalogInventoryBatchReserveRequest"];
25130
25901
  };
25131
25902
  };
25132
25903
  responses: {
@@ -25141,7 +25912,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25141
25912
  [name: string]: unknown;
25142
25913
  };
25143
25914
  content: {
25144
- "application/json": components["schemas"]["ManualInventoryBatchLifecycleResponse"];
25915
+ "application/json": components["schemas"]["CatalogInventoryBatchLifecycleResponse"];
25145
25916
  };
25146
25917
  };
25147
25918
  400: {
@@ -25237,11 +26008,11 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25237
26008
  purchaseDate?: string;
25238
26009
  taxShipTotal?: number;
25239
26010
  notes?: string;
25240
- items: components["schemas"]["ManualInventoryBatchItem"][];
26011
+ items: components["schemas"]["CatalogInventoryBatchItem"][];
25241
26012
  };
25242
26013
  }, `${string}/${string}`>>;
25243
- /** Commit a reserved batch by UUID with no request body. */
25244
- commitManualBatch: (batchId: string) => Promise<openapi_fetch.FetchResponse<{
26014
+ /** Atomically commit a reserved catalog batch by UUID, with no body. */
26015
+ commitCatalogBatch: (batchId: string) => Promise<openapi_fetch.FetchResponse<{
25245
26016
  parameters: {
25246
26017
  query?: never;
25247
26018
  header?: never;
@@ -25263,7 +26034,21 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25263
26034
  [name: string]: unknown;
25264
26035
  };
25265
26036
  content: {
25266
- "application/json": components["schemas"]["ManualInventoryBatchLifecycleResponse"];
26037
+ "application/json": components["schemas"]["CatalogInventoryBatchLifecycleResponse"];
26038
+ };
26039
+ };
26040
+ 400: {
26041
+ headers: {
26042
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26043
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26044
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26045
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26046
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26047
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26048
+ [name: string]: unknown;
26049
+ };
26050
+ content: {
26051
+ "application/json": components["schemas"]["ErrorResponse"];
25267
26052
  };
25268
26053
  };
25269
26054
  401: {
@@ -25346,12 +26131,8 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25346
26131
  };
25347
26132
  };
25348
26133
  }, `${string}/${string}`>>;
25349
- /**
25350
- * Get unknown, accepted, in-progress, completed, or terminal-rejected
25351
- * state. Unknown is explicitly nonterminal, including missing or
25352
- * cross-tenant UUIDs, so clients retain the UUID and retry.
25353
- */
25354
- getManualBatchStatus: (batchId: string) => Promise<openapi_fetch.FetchResponse<{
26134
+ /** Recover the owner-scoped lifecycle; missing batches remain unknown. */
26135
+ getCatalogBatchStatus: (batchId: string) => Promise<openapi_fetch.FetchResponse<{
25355
26136
  parameters: {
25356
26137
  query?: never;
25357
26138
  header?: never;
@@ -25373,7 +26154,21 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25373
26154
  [name: string]: unknown;
25374
26155
  };
25375
26156
  content: {
25376
- "application/json": components["schemas"]["ManualInventoryBatchLifecycleResponse"];
26157
+ "application/json": components["schemas"]["CatalogInventoryBatchLifecycleResponse"];
26158
+ };
26159
+ };
26160
+ 400: {
26161
+ headers: {
26162
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26163
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26164
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26165
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26166
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26167
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26168
+ [name: string]: unknown;
26169
+ };
26170
+ content: {
26171
+ "application/json": components["schemas"]["ErrorResponse"];
25377
26172
  };
25378
26173
  };
25379
26174
  401: {
@@ -25405,6 +26200,20 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25405
26200
  };
25406
26201
  };
25407
26202
  429: components["responses"]["ApiRateLimitExceeded"];
26203
+ 503: {
26204
+ headers: {
26205
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26206
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26207
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26208
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26209
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26210
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26211
+ [name: string]: unknown;
26212
+ };
26213
+ content: {
26214
+ "application/json": components["schemas"]["ErrorResponse"];
26215
+ };
26216
+ };
25408
26217
  };
25409
26218
  }, {
25410
26219
  params: {
@@ -25413,21 +26222,30 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25413
26222
  };
25414
26223
  };
25415
26224
  }, `${string}/${string}`>>;
25416
- /** Durably reserve canonical catalog-backed inventory intent. */
25417
- reserveCatalogBatch: (body: CatalogInventoryBatchReserveRequest) => Promise<openapi_fetch.FetchResponse<{
26225
+ /**
26226
+ * Update one of the caller's own inventory rows. Pass `ifMatch` (the
26227
+ * row's `last_updated`) to enable optimistic concurrency (409 on mismatch).
26228
+ */
26229
+ update: (id: number, body: InventoryUpdateRequest, options?: {
26230
+ ifMatch?: string;
26231
+ }) => Promise<openapi_fetch.FetchResponse<{
25418
26232
  parameters: {
25419
26233
  query?: never;
25420
- header?: never;
25421
- path?: never;
26234
+ header?: {
26235
+ "if-match"?: string;
26236
+ };
26237
+ path: {
26238
+ id: number;
26239
+ };
25422
26240
  cookie?: never;
25423
26241
  };
25424
26242
  requestBody?: {
25425
26243
  content: {
25426
- "application/json": components["schemas"]["CatalogInventoryBatchReserveRequest"];
26244
+ "application/json": components["schemas"]["InventoryUpdateRequest"];
25427
26245
  };
25428
26246
  };
25429
26247
  responses: {
25430
- 201: {
26248
+ 200: {
25431
26249
  headers: {
25432
26250
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25433
26251
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -25438,7 +26256,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25438
26256
  [name: string]: unknown;
25439
26257
  };
25440
26258
  content: {
25441
- "application/json": components["schemas"]["CatalogInventoryBatchLifecycleResponse"];
26259
+ "application/json": components["schemas"]["InventoryItemResponse"];
25442
26260
  };
25443
26261
  };
25444
26262
  400: {
@@ -25483,6 +26301,20 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25483
26301
  "application/json": components["schemas"]["ErrorResponse"];
25484
26302
  };
25485
26303
  };
26304
+ 404: {
26305
+ headers: {
26306
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26307
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26308
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26309
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26310
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26311
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26312
+ [name: string]: unknown;
26313
+ };
26314
+ content: {
26315
+ "application/json": components["schemas"]["ErrorResponse"];
26316
+ };
26317
+ };
25486
26318
  409: {
25487
26319
  headers: {
25488
26320
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
@@ -25529,21 +26361,37 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25529
26361
  };
25530
26362
  };
25531
26363
  }, {
26364
+ params: {
26365
+ path: {
26366
+ id: number;
26367
+ };
26368
+ header: {
26369
+ "if-match": string;
26370
+ } | undefined;
26371
+ };
25532
26372
  body: {
25533
- batchId: string;
26373
+ qty?: number;
25534
26374
  purchaseDate?: string;
25535
- taxShipTotal?: number;
25536
- notes?: string;
25537
- items: components["schemas"]["CatalogInventoryBatchItem"][];
26375
+ cost?: number | null;
26376
+ taxShip?: number | null;
26377
+ notes?: string | null;
26378
+ stocked?: boolean;
26379
+ rank?: number | null;
26380
+ cuppingNotes?: string | number | boolean | unknown[] | {
26381
+ [key: string]: unknown;
26382
+ } | null;
25538
26383
  };
25539
26384
  }, `${string}/${string}`>>;
25540
- /** Atomically commit a reserved catalog batch by UUID, with no body. */
25541
- commitCatalogBatch: (batchId: string) => Promise<openapi_fetch.FetchResponse<{
26385
+ /**
26386
+ * Delete one of the caller's own inventory rows. Returns 409 if dependent
26387
+ * roast profiles or sales exist (no force-cascade).
26388
+ */
26389
+ delete: (id: number) => Promise<openapi_fetch.FetchResponse<{
25542
26390
  parameters: {
25543
26391
  query?: never;
25544
26392
  header?: never;
25545
26393
  path: {
25546
- batchId: string;
26394
+ id: number;
25547
26395
  };
25548
26396
  cookie?: never;
25549
26397
  };
@@ -25560,7 +26408,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25560
26408
  [name: string]: unknown;
25561
26409
  };
25562
26410
  content: {
25563
- "application/json": components["schemas"]["CatalogInventoryBatchLifecycleResponse"];
26411
+ "application/json": components["schemas"]["InventoryDeleteResponse"];
25564
26412
  };
25565
26413
  };
25566
26414
  400: {
@@ -25619,6 +26467,20 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25619
26467
  "application/json": components["schemas"]["ErrorResponse"];
25620
26468
  };
25621
26469
  };
26470
+ 409: {
26471
+ headers: {
26472
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26473
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26474
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26475
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26476
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26477
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26478
+ [name: string]: unknown;
26479
+ };
26480
+ content: {
26481
+ "application/json": components["schemas"]["ErrorResponse"];
26482
+ };
26483
+ };
25622
26484
  429: {
25623
26485
  headers: {
25624
26486
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
@@ -25653,21 +26515,25 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25653
26515
  }, {
25654
26516
  params: {
25655
26517
  path: {
25656
- batchId: string;
26518
+ id: number;
25657
26519
  };
25658
26520
  };
25659
26521
  }, `${string}/${string}`>>;
25660
- /** Recover the owner-scoped lifecycle; missing batches remain unknown. */
25661
- getCatalogBatchStatus: (batchId: string) => Promise<openapi_fetch.FetchResponse<{
26522
+ };
26523
+ roasts: {
26524
+ /** Match Artisan roast metadata to one of the supplied inventory rows. */
26525
+ classify: (body: RoastClassificationRequest) => Promise<openapi_fetch.FetchResponse<{
25662
26526
  parameters: {
25663
26527
  query?: never;
25664
26528
  header?: never;
25665
- path: {
25666
- batchId: string;
25667
- };
26529
+ path?: never;
25668
26530
  cookie?: never;
25669
26531
  };
25670
- requestBody?: never;
26532
+ requestBody: {
26533
+ content: {
26534
+ "application/json": components["schemas"]["RoastClassificationRequest"];
26535
+ };
26536
+ };
25671
26537
  responses: {
25672
26538
  200: {
25673
26539
  headers: {
@@ -25680,7 +26546,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25680
26546
  [name: string]: unknown;
25681
26547
  };
25682
26548
  content: {
25683
- "application/json": components["schemas"]["CatalogInventoryBatchLifecycleResponse"];
26549
+ "application/json": components["schemas"]["RoastClassificationResponse"];
25684
26550
  };
25685
26551
  };
25686
26552
  400: {
@@ -25725,7 +26591,22 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25725
26591
  "application/json": components["schemas"]["ErrorResponse"];
25726
26592
  };
25727
26593
  };
25728
- 429: components["responses"]["ApiRateLimitExceeded"];
26594
+ 429: {
26595
+ headers: {
26596
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26597
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26598
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26599
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26600
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26601
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26602
+ "Retry-After": components["headers"]["Retry-After"];
26603
+ "X-RateLimit-Blocked-By": components["headers"]["X-RateLimit-Blocked-By"];
26604
+ [name: string]: unknown;
26605
+ };
26606
+ content: {
26607
+ "application/json": components["schemas"]["ErrorResponse"];
26608
+ };
26609
+ };
25729
26610
  503: {
25730
26611
  headers: {
25731
26612
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
@@ -25742,34 +26623,54 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25742
26623
  };
25743
26624
  };
25744
26625
  }, {
25745
- params: {
25746
- path: {
25747
- batchId: string;
25748
- };
25749
- };
25750
- }, `${string}/${string}`>>;
25751
- /**
25752
- * Update one of the caller's own inventory rows. Pass `ifMatch` (the
25753
- * row's `last_updated`) to enable optimistic concurrency (409 on mismatch).
25754
- */
25755
- update: (id: number, body: InventoryUpdateRequest, options?: {
25756
- ifMatch?: string;
25757
- }) => Promise<openapi_fetch.FetchResponse<{
25758
- parameters: {
25759
- query?: never;
25760
- header?: {
25761
- "if-match"?: string;
26626
+ body: {
26627
+ alogMetadata: {
26628
+ title: string;
26629
+ filename?: string;
26630
+ roastertype?: string;
26631
+ beans?: string;
26632
+ roastingnotes?: string;
26633
+ weight?: [number, number, string];
25762
26634
  };
25763
- path: {
26635
+ inventory: {
25764
26636
  id: number;
26637
+ coffee_name: string;
26638
+ origin?: string;
26639
+ processing?: string;
26640
+ }[];
26641
+ } | {
26642
+ artisanSource: {
26643
+ fileName: string;
26644
+ fileContent: string;
25765
26645
  };
25766
- cookie?: never;
26646
+ inventory: {
26647
+ id: number;
26648
+ coffee_name: string;
26649
+ origin?: string;
26650
+ processing?: string;
26651
+ }[];
25767
26652
  };
25768
- requestBody?: {
25769
- content: {
25770
- "application/json": components["schemas"]["InventoryUpdateRequest"];
26653
+ }, `${string}/${string}`>>;
26654
+ /** List the caller's own roast profiles (owner-scoped). */
26655
+ list: (query?: RoastListQuery) => Promise<openapi_fetch.FetchResponse<{
26656
+ parameters: {
26657
+ query?: {
26658
+ coffee_id?: number;
26659
+ roast_id?: number;
26660
+ batch_name?: string;
26661
+ coffee_name?: string;
26662
+ date_start?: string;
26663
+ date_end?: string;
26664
+ stocked_only?: boolean | null;
26665
+ catalog_id?: number;
26666
+ limit?: number;
26667
+ offset?: number | null;
25771
26668
  };
26669
+ header?: never;
26670
+ path?: never;
26671
+ cookie?: never;
25772
26672
  };
26673
+ requestBody?: never;
25773
26674
  responses: {
25774
26675
  200: {
25775
26676
  headers: {
@@ -25782,7 +26683,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25782
26683
  [name: string]: unknown;
25783
26684
  };
25784
26685
  content: {
25785
- "application/json": components["schemas"]["InventoryItemResponse"];
26686
+ "application/json": components["schemas"]["RoastListResponse"];
25786
26687
  };
25787
26688
  };
25788
26689
  400: {
@@ -25827,7 +26728,57 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25827
26728
  "application/json": components["schemas"]["ErrorResponse"];
25828
26729
  };
25829
26730
  };
25830
- 404: {
26731
+ 429: components["responses"]["ApiRateLimitExceeded"];
26732
+ };
26733
+ }, {
26734
+ params: {
26735
+ query: {
26736
+ coffee_id?: number;
26737
+ roast_id?: number;
26738
+ batch_name?: string;
26739
+ coffee_name?: string;
26740
+ date_start?: string;
26741
+ date_end?: string;
26742
+ stocked_only?: boolean | null;
26743
+ catalog_id?: number;
26744
+ limit?: number;
26745
+ offset?: number | null;
26746
+ } | undefined;
26747
+ };
26748
+ }, `${string}/${string}`>>;
26749
+ /**
26750
+ * Fetch one of the caller's roast profiles by id, optionally with its
26751
+ * temperature curve (`includeTemps`) and event markers (`includeEvents`).
26752
+ */
26753
+ get: (id: string, query?: RoastGetQuery) => Promise<openapi_fetch.FetchResponse<{
26754
+ parameters: {
26755
+ query?: {
26756
+ includeTemps?: boolean | null;
26757
+ includeEvents?: boolean | null;
26758
+ };
26759
+ header?: never;
26760
+ path: {
26761
+ id: string;
26762
+ };
26763
+ cookie?: never;
26764
+ };
26765
+ requestBody?: never;
26766
+ responses: {
26767
+ 200: {
26768
+ headers: {
26769
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26770
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26771
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26772
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26773
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26774
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26775
+ [name: string]: unknown;
26776
+ };
26777
+ content: {
26778
+ "application/json": components["schemas"]["RoastGetResponse"];
26779
+ };
26780
+ };
26781
+ 400: {
25831
26782
  headers: {
25832
26783
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25833
26784
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -25841,7 +26792,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25841
26792
  "application/json": components["schemas"]["ErrorResponse"];
25842
26793
  };
25843
26794
  };
25844
- 409: {
26795
+ 401: {
25845
26796
  headers: {
25846
26797
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25847
26798
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -25855,7 +26806,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25855
26806
  "application/json": components["schemas"]["ErrorResponse"];
25856
26807
  };
25857
26808
  };
25858
- 429: {
26809
+ 403: {
25859
26810
  headers: {
25860
26811
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25861
26812
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -25863,15 +26814,13 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25863
26814
  "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
25864
26815
  "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
25865
26816
  "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
25866
- "Retry-After": components["headers"]["Retry-After"];
25867
- "X-RateLimit-Blocked-By": components["headers"]["X-RateLimit-Blocked-By"];
25868
26817
  [name: string]: unknown;
25869
26818
  };
25870
26819
  content: {
25871
26820
  "application/json": components["schemas"]["ErrorResponse"];
25872
26821
  };
25873
26822
  };
25874
- 503: {
26823
+ 404: {
25875
26824
  headers: {
25876
26825
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25877
26826
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -25885,39 +26834,28 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25885
26834
  "application/json": components["schemas"]["ErrorResponse"];
25886
26835
  };
25887
26836
  };
26837
+ 429: components["responses"]["ApiRateLimitExceeded"];
25888
26838
  };
25889
26839
  }, {
25890
26840
  params: {
25891
26841
  path: {
25892
- id: number;
26842
+ id: string;
25893
26843
  };
25894
- header: {
25895
- "if-match": string;
26844
+ query: {
26845
+ includeTemps?: boolean | null;
26846
+ includeEvents?: boolean | null;
25896
26847
  } | undefined;
25897
26848
  };
25898
- body: {
25899
- qty?: number;
25900
- purchaseDate?: string;
25901
- cost?: number | null;
25902
- taxShip?: number | null;
25903
- notes?: string | null;
25904
- stocked?: boolean;
25905
- rank?: number | null;
25906
- cuppingNotes?: string | number | boolean | unknown[] | {
25907
- [key: string]: unknown;
25908
- } | null;
25909
- };
25910
26849
  }, `${string}/${string}`>>;
25911
- /**
25912
- * Delete one of the caller's own inventory rows. Returns 409 if dependent
25913
- * roast profiles or sales exist (no force-cascade).
25914
- */
25915
- delete: (id: number) => Promise<openapi_fetch.FetchResponse<{
26850
+ /** Fetch an owner roast's adaptively sampled chart curve and metadata. */
26851
+ chartData: (id: string, query?: RoastChartDataQuery) => Promise<openapi_fetch.FetchResponse<{
25916
26852
  parameters: {
25917
- query?: never;
26853
+ query?: {
26854
+ target_points?: number;
26855
+ };
25918
26856
  header?: never;
25919
26857
  path: {
25920
- id: number;
26858
+ id: string;
25921
26859
  };
25922
26860
  cookie?: never;
25923
26861
  };
@@ -25934,7 +26872,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25934
26872
  [name: string]: unknown;
25935
26873
  };
25936
26874
  content: {
25937
- "application/json": components["schemas"]["InventoryDeleteResponse"];
26875
+ "application/json": components["schemas"]["RoastChartDataResponse"];
25938
26876
  };
25939
26877
  };
25940
26878
  400: {
@@ -25993,75 +26931,42 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
25993
26931
  "application/json": components["schemas"]["ErrorResponse"];
25994
26932
  };
25995
26933
  };
25996
- 409: {
25997
- headers: {
25998
- "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
25999
- "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26000
- "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26001
- "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26002
- "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26003
- "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26004
- [name: string]: unknown;
26005
- };
26006
- content: {
26007
- "application/json": components["schemas"]["ErrorResponse"];
26008
- };
26009
- };
26010
- 429: {
26011
- headers: {
26012
- "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26013
- "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26014
- "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26015
- "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26016
- "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26017
- "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26018
- "Retry-After": components["headers"]["Retry-After"];
26019
- "X-RateLimit-Blocked-By": components["headers"]["X-RateLimit-Blocked-By"];
26020
- [name: string]: unknown;
26021
- };
26022
- content: {
26023
- "application/json": components["schemas"]["ErrorResponse"];
26024
- };
26025
- };
26026
- 503: {
26027
- headers: {
26028
- "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26029
- "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26030
- "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26031
- "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26032
- "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26033
- "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26034
- [name: string]: unknown;
26035
- };
26036
- content: {
26037
- "application/json": components["schemas"]["ErrorResponse"];
26038
- };
26039
- };
26934
+ 429: components["responses"]["ApiRateLimitExceeded"];
26040
26935
  };
26041
26936
  }, {
26042
26937
  params: {
26043
26938
  path: {
26044
- id: number;
26939
+ id: string;
26045
26940
  };
26941
+ query: {
26942
+ target_points?: number;
26943
+ } | undefined;
26046
26944
  };
26047
26945
  }, `${string}/${string}`>>;
26048
- };
26049
- roasts: {
26050
- /** Match Artisan roast metadata to one of the supplied inventory rows. */
26051
- classify: (body: RoastClassificationRequest) => Promise<openapi_fetch.FetchResponse<{
26946
+ /**
26947
+ * Create an owner roast profile, optionally with nested temperature/event
26948
+ * rows. Requires a session or an owner-bound API key carrying the exact
26949
+ * `roast:write` scope. The optional `idempotencyKey` is payload-bound:
26950
+ * same-key, same-payload retries replay, while changed payloads conflict.
26951
+ */
26952
+ create: (body: RoastCreateRequest, options?: {
26953
+ idempotencyKey?: string;
26954
+ }) => Promise<openapi_fetch.FetchResponse<{
26052
26955
  parameters: {
26053
26956
  query?: never;
26054
- header?: never;
26957
+ header?: {
26958
+ "idempotency-key"?: string;
26959
+ };
26055
26960
  path?: never;
26056
26961
  cookie?: never;
26057
26962
  };
26058
26963
  requestBody: {
26059
26964
  content: {
26060
- "application/json": components["schemas"]["RoastClassificationRequest"];
26965
+ "application/json": components["schemas"]["RoastCreateRequest"];
26061
26966
  };
26062
26967
  };
26063
26968
  responses: {
26064
- 200: {
26969
+ 201: {
26065
26970
  headers: {
26066
26971
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26067
26972
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -26072,7 +26977,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26072
26977
  [name: string]: unknown;
26073
26978
  };
26074
26979
  content: {
26075
- "application/json": components["schemas"]["RoastClassificationResponse"];
26980
+ "application/json": components["schemas"]["RoastDetailResponse"];
26076
26981
  };
26077
26982
  };
26078
26983
  400: {
@@ -26117,23 +27022,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26117
27022
  "application/json": components["schemas"]["ErrorResponse"];
26118
27023
  };
26119
27024
  };
26120
- 429: {
26121
- headers: {
26122
- "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26123
- "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26124
- "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26125
- "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26126
- "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26127
- "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26128
- "Retry-After": components["headers"]["Retry-After"];
26129
- "X-RateLimit-Blocked-By": components["headers"]["X-RateLimit-Blocked-By"];
26130
- [name: string]: unknown;
26131
- };
26132
- content: {
26133
- "application/json": components["schemas"]["ErrorResponse"];
26134
- };
26135
- };
26136
- 503: {
27025
+ 404: {
26137
27026
  headers: {
26138
27027
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26139
27028
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -26147,72 +27036,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26147
27036
  "application/json": components["schemas"]["ErrorResponse"];
26148
27037
  };
26149
27038
  };
26150
- };
26151
- }, {
26152
- body: {
26153
- alogMetadata: {
26154
- title: string;
26155
- filename?: string;
26156
- roastertype?: string;
26157
- beans?: string;
26158
- roastingnotes?: string;
26159
- weight?: [number, number, string];
26160
- };
26161
- inventory: {
26162
- id: number;
26163
- coffee_name: string;
26164
- origin?: string;
26165
- processing?: string;
26166
- }[];
26167
- } | {
26168
- artisanSource: {
26169
- fileName: string;
26170
- fileContent: string;
26171
- };
26172
- inventory: {
26173
- id: number;
26174
- coffee_name: string;
26175
- origin?: string;
26176
- processing?: string;
26177
- }[];
26178
- };
26179
- }, `${string}/${string}`>>;
26180
- /** List the caller's own roast profiles (owner-scoped). */
26181
- list: (query?: RoastListQuery) => Promise<openapi_fetch.FetchResponse<{
26182
- parameters: {
26183
- query?: {
26184
- coffee_id?: number;
26185
- roast_id?: number;
26186
- batch_name?: string;
26187
- coffee_name?: string;
26188
- date_start?: string;
26189
- date_end?: string;
26190
- stocked_only?: boolean | null;
26191
- catalog_id?: number;
26192
- limit?: number;
26193
- offset?: number | null;
26194
- };
26195
- header?: never;
26196
- path?: never;
26197
- cookie?: never;
26198
- };
26199
- requestBody?: never;
26200
- responses: {
26201
- 200: {
26202
- headers: {
26203
- "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26204
- "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26205
- "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26206
- "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26207
- "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26208
- "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26209
- [name: string]: unknown;
26210
- };
26211
- content: {
26212
- "application/json": components["schemas"]["RoastListResponse"];
26213
- };
26214
- };
26215
- 400: {
27039
+ 409: {
26216
27040
  headers: {
26217
27041
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26218
27042
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -26226,7 +27050,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26226
27050
  "application/json": components["schemas"]["ErrorResponse"];
26227
27051
  };
26228
27052
  };
26229
- 401: {
27053
+ 429: {
26230
27054
  headers: {
26231
27055
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26232
27056
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -26234,13 +27058,15 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26234
27058
  "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26235
27059
  "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26236
27060
  "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
27061
+ "Retry-After": components["headers"]["Retry-After"];
27062
+ "X-RateLimit-Blocked-By": components["headers"]["X-RateLimit-Blocked-By"];
26237
27063
  [name: string]: unknown;
26238
27064
  };
26239
27065
  content: {
26240
27066
  "application/json": components["schemas"]["ErrorResponse"];
26241
27067
  };
26242
27068
  };
26243
- 403: {
27069
+ 503: {
26244
27070
  headers: {
26245
27071
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26246
27072
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -26254,43 +27080,72 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26254
27080
  "application/json": components["schemas"]["ErrorResponse"];
26255
27081
  };
26256
27082
  };
26257
- 429: components["responses"]["ApiRateLimitExceeded"];
26258
27083
  };
26259
27084
  }, {
26260
- params: {
26261
- query: {
26262
- coffee_id?: number;
26263
- roast_id?: number;
26264
- batch_name?: string;
26265
- coffee_name?: string;
26266
- date_start?: string;
26267
- date_end?: string;
26268
- stocked_only?: boolean | null;
26269
- catalog_id?: number;
26270
- limit?: number;
26271
- offset?: number | null;
26272
- } | undefined;
27085
+ body: {
27086
+ coffeeId: number;
27087
+ coffeeName?: string;
27088
+ batchName?: string;
27089
+ roastDate?: string;
27090
+ ozIn?: number;
27091
+ ozOut?: number;
27092
+ weightLossPercent?: number;
27093
+ notes?: string;
27094
+ targets?: string;
27095
+ roasterType?: string;
27096
+ roasterSize?: string;
27097
+ temperatureUnit?: "F" | "C";
27098
+ totalRoastTime?: number;
27099
+ developmentPercent?: number;
27100
+ dataSource?: string;
27101
+ roastUuid?: string;
27102
+ fcStartTime?: number;
27103
+ fcStartTemp?: number;
27104
+ fcEndTime?: number;
27105
+ fcEndTemp?: number;
27106
+ dropTime?: number;
27107
+ dropTemp?: number;
27108
+ chargeTemp?: number;
27109
+ chargeTime?: number;
27110
+ tpTime?: number;
27111
+ tpTemp?: number;
27112
+ totalRor?: number;
27113
+ dryPercent?: number;
27114
+ maillardPercent?: number;
27115
+ auc?: number;
27116
+ dryPhaseRor?: number;
27117
+ midPhaseRor?: number;
27118
+ finishPhaseRor?: number;
27119
+ dryPhaseDeltaTemp?: number;
27120
+ temperatures?: components["schemas"]["RoastTemperatureInput"][];
27121
+ events?: components["schemas"]["RoastEventInput"][];
26273
27122
  };
27123
+ params: {
27124
+ header: {
27125
+ "idempotency-key": string;
27126
+ };
27127
+ } | undefined;
26274
27128
  }, `${string}/${string}`>>;
26275
27129
  /**
26276
- * Fetch one of the caller's roast profiles by id, optionally with its
26277
- * temperature curve (`includeTemps`) and event markers (`includeEvents`).
27130
+ * Create every profile in one named batch atomically. The required
27131
+ * payload-bound idempotency key makes transport retries safe.
26278
27132
  */
26279
- get: (id: string, query?: RoastGetQuery) => Promise<openapi_fetch.FetchResponse<{
27133
+ createBatch: (body: RoastBatchCreateRequest, idempotencyKey: string) => Promise<openapi_fetch.FetchResponse<{
26280
27134
  parameters: {
26281
- query?: {
26282
- includeTemps?: boolean | null;
26283
- includeEvents?: boolean | null;
26284
- };
26285
- header?: never;
26286
- path: {
26287
- id: string;
27135
+ query?: never;
27136
+ header: {
27137
+ "idempotency-key": string;
26288
27138
  };
27139
+ path?: never;
26289
27140
  cookie?: never;
26290
27141
  };
26291
- requestBody?: never;
27142
+ requestBody: {
27143
+ content: {
27144
+ "application/json": components["schemas"]["RoastBatchCreateRequest"];
27145
+ };
27146
+ };
26292
27147
  responses: {
26293
- 200: {
27148
+ 201: {
26294
27149
  headers: {
26295
27150
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26296
27151
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -26301,7 +27156,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26301
27156
  [name: string]: unknown;
26302
27157
  };
26303
27158
  content: {
26304
- "application/json": components["schemas"]["RoastGetResponse"];
27159
+ "application/json": components["schemas"]["RoastBatchMutationResponse"];
26305
27160
  };
26306
27161
  };
26307
27162
  400: {
@@ -26360,62 +27215,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26360
27215
  "application/json": components["schemas"]["ErrorResponse"];
26361
27216
  };
26362
27217
  };
26363
- 429: components["responses"]["ApiRateLimitExceeded"];
26364
- };
26365
- }, {
26366
- params: {
26367
- path: {
26368
- id: string;
26369
- };
26370
- query: {
26371
- includeTemps?: boolean | null;
26372
- includeEvents?: boolean | null;
26373
- } | undefined;
26374
- };
26375
- }, `${string}/${string}`>>;
26376
- /** Fetch an owner roast's adaptively sampled chart curve and metadata. */
26377
- chartData: (id: string, query?: RoastChartDataQuery) => Promise<openapi_fetch.FetchResponse<{
26378
- parameters: {
26379
- query?: {
26380
- target_points?: number;
26381
- };
26382
- header?: never;
26383
- path: {
26384
- id: string;
26385
- };
26386
- cookie?: never;
26387
- };
26388
- requestBody?: never;
26389
- responses: {
26390
- 200: {
26391
- headers: {
26392
- "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26393
- "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26394
- "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26395
- "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26396
- "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26397
- "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26398
- [name: string]: unknown;
26399
- };
26400
- content: {
26401
- "application/json": components["schemas"]["RoastChartDataResponse"];
26402
- };
26403
- };
26404
- 400: {
26405
- headers: {
26406
- "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26407
- "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26408
- "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26409
- "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26410
- "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26411
- "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26412
- [name: string]: unknown;
26413
- };
26414
- content: {
26415
- "application/json": components["schemas"]["ErrorResponse"];
26416
- };
26417
- };
26418
- 401: {
27218
+ 409: {
26419
27219
  headers: {
26420
27220
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26421
27221
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -26429,7 +27229,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26429
27229
  "application/json": components["schemas"]["ErrorResponse"];
26430
27230
  };
26431
27231
  };
26432
- 403: {
27232
+ 429: {
26433
27233
  headers: {
26434
27234
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26435
27235
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -26437,13 +27237,15 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26437
27237
  "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26438
27238
  "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26439
27239
  "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
27240
+ "Retry-After": components["headers"]["Retry-After"];
27241
+ "X-RateLimit-Blocked-By": components["headers"]["X-RateLimit-Blocked-By"];
26440
27242
  [name: string]: unknown;
26441
27243
  };
26442
27244
  content: {
26443
27245
  "application/json": components["schemas"]["ErrorResponse"];
26444
27246
  };
26445
27247
  };
26446
- 404: {
27248
+ 503: {
26447
27249
  headers: {
26448
27250
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26449
27251
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -26457,42 +27259,45 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26457
27259
  "application/json": components["schemas"]["ErrorResponse"];
26458
27260
  };
26459
27261
  };
26460
- 429: components["responses"]["ApiRateLimitExceeded"];
26461
27262
  };
26462
27263
  }, {
27264
+ body: {
27265
+ batchName: string;
27266
+ roastDate?: string;
27267
+ notes?: string;
27268
+ targets?: string;
27269
+ items: components["schemas"]["RoastBatchItem"][];
27270
+ };
26463
27271
  params: {
26464
- path: {
26465
- id: string;
27272
+ header: {
27273
+ "idempotency-key": string;
26466
27274
  };
26467
- query: {
26468
- target_points?: number;
26469
- } | undefined;
26470
27275
  };
26471
27276
  }, `${string}/${string}`>>;
26472
27277
  /**
26473
- * Create an owner roast profile, optionally with nested temperature/event
26474
- * rows. Requires a session or an owner-bound API key carrying the exact
26475
- * `roast:write` scope. The optional `idempotencyKey` is payload-bound:
26476
- * same-key, same-payload retries replay, while changed payloads conflict.
27278
+ * Update one of the caller's own roast profiles. Pass `ifMatch` (the
27279
+ * row's `last_updated`) to enable optimistic concurrency (409 on mismatch).
26477
27280
  */
26478
- create: (body: RoastCreateRequest, options?: {
26479
- idempotencyKey?: string;
27281
+ update: (id: number, body: RoastUpdateRequest, options?: {
27282
+ ifMatch?: string;
26480
27283
  }) => Promise<openapi_fetch.FetchResponse<{
26481
27284
  parameters: {
26482
27285
  query?: never;
26483
27286
  header?: {
26484
- "idempotency-key"?: string;
27287
+ "if-match"?: string;
27288
+ };
27289
+ path: {
27290
+ id: number;
26485
27291
  };
26486
- path?: never;
26487
27292
  cookie?: never;
26488
27293
  };
26489
27294
  requestBody: {
26490
27295
  content: {
26491
- "application/json": components["schemas"]["RoastCreateRequest"];
27296
+ "application/json": components["schemas"]["RoastUpdateRequest"];
26492
27297
  };
26493
27298
  };
26494
27299
  responses: {
26495
- 201: {
27300
+ 200: {
26496
27301
  headers: {
26497
27302
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26498
27303
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -26608,16 +27413,23 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26608
27413
  };
26609
27414
  };
26610
27415
  }, {
27416
+ params: {
27417
+ path: {
27418
+ id: number;
27419
+ };
27420
+ header: {
27421
+ "if-match": string;
27422
+ } | undefined;
27423
+ };
26611
27424
  body: {
26612
- coffeeId: number;
26613
27425
  coffeeName?: string;
26614
27426
  batchName?: string;
26615
27427
  roastDate?: string;
26616
- ozIn?: number;
26617
- ozOut?: number;
27428
+ ozIn?: number | null;
27429
+ ozOut?: number | null;
26618
27430
  weightLossPercent?: number;
26619
- notes?: string;
26620
- targets?: string;
27431
+ notes?: string | null;
27432
+ targets?: string | null;
26621
27433
  roasterType?: string;
26622
27434
  roasterSize?: string;
26623
27435
  temperatureUnit?: "F" | "C";
@@ -26646,32 +27458,20 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26646
27458
  temperatures?: components["schemas"]["RoastTemperatureInput"][];
26647
27459
  events?: components["schemas"]["RoastEventInput"][];
26648
27460
  };
26649
- params: {
26650
- header: {
26651
- "idempotency-key": string;
26652
- };
26653
- } | undefined;
26654
27461
  }, `${string}/${string}`>>;
26655
- /**
26656
- * Create every profile in one named batch atomically. The required
26657
- * payload-bound idempotency key makes transport retries safe.
26658
- */
26659
- createBatch: (body: RoastBatchCreateRequest, idempotencyKey: string) => Promise<openapi_fetch.FetchResponse<{
27462
+ /** Delete one of the caller's own roast profiles. */
27463
+ delete: (id: number) => Promise<openapi_fetch.FetchResponse<{
26660
27464
  parameters: {
26661
27465
  query?: never;
26662
- header: {
26663
- "idempotency-key": string;
27466
+ header?: never;
27467
+ path: {
27468
+ id: number;
26664
27469
  };
26665
- path?: never;
26666
27470
  cookie?: never;
26667
27471
  };
26668
- requestBody: {
26669
- content: {
26670
- "application/json": components["schemas"]["RoastBatchCreateRequest"];
26671
- };
26672
- };
27472
+ requestBody?: never;
26673
27473
  responses: {
26674
- 201: {
27474
+ 200: {
26675
27475
  headers: {
26676
27476
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26677
27477
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -26682,7 +27482,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26682
27482
  [name: string]: unknown;
26683
27483
  };
26684
27484
  content: {
26685
- "application/json": components["schemas"]["RoastBatchMutationResponse"];
27485
+ "application/json": components["schemas"]["RoastDeleteResponse"];
26686
27486
  };
26687
27487
  };
26688
27488
  400: {
@@ -26741,20 +27541,6 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26741
27541
  "application/json": components["schemas"]["ErrorResponse"];
26742
27542
  };
26743
27543
  };
26744
- 409: {
26745
- headers: {
26746
- "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26747
- "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26748
- "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26749
- "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26750
- "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26751
- "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26752
- [name: string]: unknown;
26753
- };
26754
- content: {
26755
- "application/json": components["schemas"]["ErrorResponse"];
26756
- };
26757
- };
26758
27544
  429: {
26759
27545
  headers: {
26760
27546
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
@@ -26784,44 +27570,26 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26784
27570
  content: {
26785
27571
  "application/json": components["schemas"]["ErrorResponse"];
26786
27572
  };
26787
- };
26788
- };
26789
- }, {
26790
- body: {
26791
- batchName: string;
26792
- roastDate?: string;
26793
- notes?: string;
26794
- targets?: string;
26795
- items: components["schemas"]["RoastBatchItem"][];
27573
+ };
26796
27574
  };
27575
+ }, {
26797
27576
  params: {
26798
- header: {
26799
- "idempotency-key": string;
27577
+ path: {
27578
+ id: number;
26800
27579
  };
26801
27580
  };
26802
27581
  }, `${string}/${string}`>>;
26803
- /**
26804
- * Update one of the caller's own roast profiles. Pass `ifMatch` (the
26805
- * row's `last_updated`) to enable optimistic concurrency (409 on mismatch).
26806
- */
26807
- update: (id: number, body: RoastUpdateRequest, options?: {
26808
- ifMatch?: string;
26809
- }) => Promise<openapi_fetch.FetchResponse<{
27582
+ /** Delete every owner roast carrying one exact batch name. Session-only. */
27583
+ deleteBatch: (batchName: string) => Promise<openapi_fetch.FetchResponse<{
26810
27584
  parameters: {
26811
27585
  query?: never;
26812
- header?: {
26813
- "if-match"?: string;
26814
- };
27586
+ header?: never;
26815
27587
  path: {
26816
- id: number;
27588
+ batchName: string;
26817
27589
  };
26818
27590
  cookie?: never;
26819
27591
  };
26820
- requestBody: {
26821
- content: {
26822
- "application/json": components["schemas"]["RoastUpdateRequest"];
26823
- };
26824
- };
27592
+ requestBody?: never;
26825
27593
  responses: {
26826
27594
  200: {
26827
27595
  headers: {
@@ -26834,7 +27602,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26834
27602
  [name: string]: unknown;
26835
27603
  };
26836
27604
  content: {
26837
- "application/json": components["schemas"]["RoastDetailResponse"];
27605
+ "application/json": components["schemas"]["RoastBatchDeleteResponse"];
26838
27606
  };
26839
27607
  };
26840
27608
  400: {
@@ -26893,20 +27661,6 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26893
27661
  "application/json": components["schemas"]["ErrorResponse"];
26894
27662
  };
26895
27663
  };
26896
- 409: {
26897
- headers: {
26898
- "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
26899
- "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
26900
- "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
26901
- "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
26902
- "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
26903
- "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
26904
- [name: string]: unknown;
26905
- };
26906
- content: {
26907
- "application/json": components["schemas"]["ErrorResponse"];
26908
- };
26909
- };
26910
27664
  429: {
26911
27665
  headers: {
26912
27666
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
@@ -26941,61 +27695,32 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
26941
27695
  }, {
26942
27696
  params: {
26943
27697
  path: {
26944
- id: number;
27698
+ batchName: string;
26945
27699
  };
26946
- header: {
26947
- "if-match": string;
26948
- } | undefined;
26949
- };
26950
- body: {
26951
- coffeeName?: string;
26952
- batchName?: string;
26953
- roastDate?: string;
26954
- ozIn?: number | null;
26955
- ozOut?: number | null;
26956
- weightLossPercent?: number;
26957
- notes?: string | null;
26958
- targets?: string | null;
26959
- roasterType?: string;
26960
- roasterSize?: string;
26961
- temperatureUnit?: "F" | "C";
26962
- totalRoastTime?: number;
26963
- developmentPercent?: number;
26964
- dataSource?: string;
26965
- roastUuid?: string;
26966
- fcStartTime?: number;
26967
- fcStartTemp?: number;
26968
- fcEndTime?: number;
26969
- fcEndTemp?: number;
26970
- dropTime?: number;
26971
- dropTemp?: number;
26972
- chargeTemp?: number;
26973
- chargeTime?: number;
26974
- tpTime?: number;
26975
- tpTemp?: number;
26976
- totalRor?: number;
26977
- dryPercent?: number;
26978
- maillardPercent?: number;
26979
- auc?: number;
26980
- dryPhaseRor?: number;
26981
- midPhaseRor?: number;
26982
- finishPhaseRor?: number;
26983
- dryPhaseDeltaTemp?: number;
26984
- temperatures?: components["schemas"]["RoastTemperatureInput"][];
26985
- events?: components["schemas"]["RoastEventInput"][];
26986
27700
  };
26987
27701
  }, `${string}/${string}`>>;
26988
- /** Delete one of the caller's own roast profiles. */
26989
- delete: (id: number) => Promise<openapi_fetch.FetchResponse<{
27702
+ /**
27703
+ * Replace live temperature samples and all event markers atomically,
27704
+ * while preserving non-live temperatures and deriving milestone fields.
27705
+ */
27706
+ replaceLiveCurve: (id: number, body: RoastLiveCurveRequest, options?: {
27707
+ ifMatch?: string;
27708
+ }) => Promise<openapi_fetch.FetchResponse<{
26990
27709
  parameters: {
26991
27710
  query?: never;
26992
- header?: never;
27711
+ header?: {
27712
+ "if-match"?: string;
27713
+ };
26993
27714
  path: {
26994
27715
  id: number;
26995
27716
  };
26996
27717
  cookie?: never;
26997
27718
  };
26998
- requestBody?: never;
27719
+ requestBody: {
27720
+ content: {
27721
+ "application/json": components["schemas"]["RoastLiveCurveRequest"];
27722
+ };
27723
+ };
26999
27724
  responses: {
27000
27725
  200: {
27001
27726
  headers: {
@@ -27008,7 +27733,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27008
27733
  [name: string]: unknown;
27009
27734
  };
27010
27735
  content: {
27011
- "application/json": components["schemas"]["RoastDeleteResponse"];
27736
+ "application/json": components["schemas"]["RoastDetailResponse"];
27012
27737
  };
27013
27738
  };
27014
27739
  400: {
@@ -27067,6 +27792,20 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27067
27792
  "application/json": components["schemas"]["ErrorResponse"];
27068
27793
  };
27069
27794
  };
27795
+ 409: {
27796
+ headers: {
27797
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27798
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
27799
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
27800
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
27801
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
27802
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
27803
+ [name: string]: unknown;
27804
+ };
27805
+ content: {
27806
+ "application/json": components["schemas"]["ErrorResponse"];
27807
+ };
27808
+ };
27070
27809
  429: {
27071
27810
  headers: {
27072
27811
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
@@ -27103,21 +27842,41 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27103
27842
  path: {
27104
27843
  id: number;
27105
27844
  };
27845
+ header: {
27846
+ "if-match": string;
27847
+ } | undefined;
27848
+ };
27849
+ body: {
27850
+ temperatures: components["schemas"]["RoastTemperatureInput"][];
27851
+ events: components["schemas"]["RoastEventInput"][];
27106
27852
  };
27107
27853
  }, `${string}/${string}`>>;
27108
- /** Delete every owner roast carrying one exact batch name. Session-only. */
27109
- deleteBatch: (batchName: string) => Promise<openapi_fetch.FetchResponse<{
27854
+ /**
27855
+ * Create a roast profile from an Artisan `.alog` file against one of the
27856
+ * caller's green-coffee lots, persisting the imported curve, events, and
27857
+ * an artisan_import_log entry atomically. Requires a session or an
27858
+ * owner-bound API key carrying the exact `roast:write` scope. The
27859
+ * optional `idempotencyKey` is payload-bound: same-key, same-payload
27860
+ * retries replay, while changed payloads conflict.
27861
+ */
27862
+ import: (body: RoastImportRequest, options?: {
27863
+ idempotencyKey?: string;
27864
+ }) => Promise<openapi_fetch.FetchResponse<{
27110
27865
  parameters: {
27111
27866
  query?: never;
27112
- header?: never;
27113
- path: {
27114
- batchName: string;
27867
+ header?: {
27868
+ "idempotency-key"?: string;
27115
27869
  };
27870
+ path?: never;
27116
27871
  cookie?: never;
27117
27872
  };
27118
- requestBody?: never;
27873
+ requestBody: {
27874
+ content: {
27875
+ "application/json": components["schemas"]["RoastImportCreateRequest"];
27876
+ };
27877
+ };
27119
27878
  responses: {
27120
- 200: {
27879
+ 201: {
27121
27880
  headers: {
27122
27881
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27123
27882
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27128,7 +27887,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27128
27887
  [name: string]: unknown;
27129
27888
  };
27130
27889
  content: {
27131
- "application/json": components["schemas"]["RoastBatchDeleteResponse"];
27890
+ "application/json": components["schemas"]["RoastImportResponse"];
27132
27891
  };
27133
27892
  };
27134
27893
  400: {
@@ -27187,6 +27946,20 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27187
27946
  "application/json": components["schemas"]["ErrorResponse"];
27188
27947
  };
27189
27948
  };
27949
+ 409: {
27950
+ headers: {
27951
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27952
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
27953
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
27954
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
27955
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
27956
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
27957
+ [name: string]: unknown;
27958
+ };
27959
+ content: {
27960
+ "application/json": components["schemas"]["ErrorResponse"];
27961
+ };
27962
+ };
27190
27963
  429: {
27191
27964
  headers: {
27192
27965
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
@@ -27219,17 +27992,29 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27219
27992
  };
27220
27993
  };
27221
27994
  }, {
27995
+ body: {
27996
+ fileName: string;
27997
+ fileContent: string;
27998
+ coffeeId: number;
27999
+ batchName?: string;
28000
+ ozIn?: number;
28001
+ roastNotes?: string;
28002
+ roastTargets?: string;
28003
+ fileSize?: number;
28004
+ };
27222
28005
  params: {
27223
- path: {
27224
- batchName: string;
28006
+ header: {
28007
+ "idempotency-key": string;
27225
28008
  };
27226
- };
28009
+ } | undefined;
27227
28010
  }, `${string}/${string}`>>;
27228
28011
  /**
27229
- * Replace live temperature samples and all event markers atomically,
27230
- * while preserving non-live temperatures and deriving milestone fields.
28012
+ * Replace the Artisan import data on one of the caller's existing roasts,
28013
+ * re-deriving its curve, events, and computed metrics while preserving the
28014
+ * roast's identity. Pass `ifMatch` (the roast's `last_updated`) to enable
28015
+ * optimistic concurrency (409 on mismatch).
27231
28016
  */
27232
- replaceLiveCurve: (id: number, body: RoastLiveCurveRequest, options?: {
28017
+ replaceArtisanImport: (id: number, body: RoastArtisanImportReplaceRequest, options?: {
27233
28018
  ifMatch?: string;
27234
28019
  }) => Promise<openapi_fetch.FetchResponse<{
27235
28020
  parameters: {
@@ -27244,7 +28029,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27244
28029
  };
27245
28030
  requestBody: {
27246
28031
  content: {
27247
- "application/json": components["schemas"]["RoastLiveCurveRequest"];
28032
+ "application/json": components["schemas"]["RoastArtisanImportReplaceRequest"];
27248
28033
  };
27249
28034
  };
27250
28035
  responses: {
@@ -27259,7 +28044,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27259
28044
  [name: string]: unknown;
27260
28045
  };
27261
28046
  content: {
27262
- "application/json": components["schemas"]["RoastDetailResponse"];
28047
+ "application/json": components["schemas"]["RoastImportResponse"];
27263
28048
  };
27264
28049
  };
27265
28050
  400: {
@@ -27373,64 +28158,27 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27373
28158
  } | undefined;
27374
28159
  };
27375
28160
  body: {
27376
- temperatures: components["schemas"]["RoastTemperatureInput"][];
27377
- events: components["schemas"]["RoastEventInput"][];
28161
+ fileName: string;
28162
+ fileContent: string;
28163
+ fileSize?: number;
27378
28164
  };
27379
28165
  }, `${string}/${string}`>>;
27380
28166
  /**
27381
- * Create a roast profile from an Artisan `.alog` file against one of the
27382
- * caller's green-coffee lots, persisting the imported curve, events, and
27383
- * an artisan_import_log entry atomically. Requires a session or an
27384
- * owner-bound API key carrying the exact `roast:write` scope. The
27385
- * optional `idempotencyKey` is payload-bound: same-key, same-payload
27386
- * retries replay, while changed payloads conflict.
28167
+ * Clear import-derived curve, events, metrics, and provenance data from
28168
+ * one of the caller's existing roasts without deleting the roast profile.
27387
28169
  */
27388
- import: (body: RoastImportRequest, options?: {
27389
- idempotencyKey?: string;
27390
- }) => Promise<openapi_fetch.FetchResponse<{
28170
+ clearArtisanImport: (id: number) => Promise<openapi_fetch.FetchResponse<{
27391
28171
  parameters: {
27392
28172
  query?: never;
27393
- header?: {
27394
- "idempotency-key"?: string;
27395
- };
27396
- path?: never;
27397
- cookie?: never;
27398
- };
27399
- requestBody: {
27400
- content: {
27401
- "application/json": components["schemas"]["RoastImportCreateRequest"];
27402
- };
27403
- };
27404
- responses: {
27405
- 201: {
27406
- headers: {
27407
- "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27408
- "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
27409
- "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
27410
- "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
27411
- "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
27412
- "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
27413
- [name: string]: unknown;
27414
- };
27415
- content: {
27416
- "application/json": components["schemas"]["RoastImportResponse"];
27417
- };
27418
- };
27419
- 400: {
27420
- headers: {
27421
- "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27422
- "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
27423
- "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
27424
- "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
27425
- "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
27426
- "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
27427
- [name: string]: unknown;
27428
- };
27429
- content: {
27430
- "application/json": components["schemas"]["ErrorResponse"];
27431
- };
28173
+ header?: never;
28174
+ path: {
28175
+ id: number;
27432
28176
  };
27433
- 401: {
28177
+ cookie?: never;
28178
+ };
28179
+ requestBody?: never;
28180
+ responses: {
28181
+ 200: {
27434
28182
  headers: {
27435
28183
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27436
28184
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27441,10 +28189,10 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27441
28189
  [name: string]: unknown;
27442
28190
  };
27443
28191
  content: {
27444
- "application/json": components["schemas"]["ErrorResponse"];
28192
+ "application/json": components["schemas"]["RoastArtisanImportClearResponse"];
27445
28193
  };
27446
28194
  };
27447
- 403: {
28195
+ 401: {
27448
28196
  headers: {
27449
28197
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27450
28198
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27458,7 +28206,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27458
28206
  "application/json": components["schemas"]["ErrorResponse"];
27459
28207
  };
27460
28208
  };
27461
- 404: {
28209
+ 403: {
27462
28210
  headers: {
27463
28211
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27464
28212
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27472,7 +28220,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27472
28220
  "application/json": components["schemas"]["ErrorResponse"];
27473
28221
  };
27474
28222
  };
27475
- 409: {
28223
+ 404: {
27476
28224
  headers: {
27477
28225
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27478
28226
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27518,46 +28266,25 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27518
28266
  };
27519
28267
  };
27520
28268
  }, {
27521
- body: {
27522
- fileName: string;
27523
- fileContent: string;
27524
- coffeeId: number;
27525
- batchName?: string;
27526
- ozIn?: number;
27527
- roastNotes?: string;
27528
- roastTargets?: string;
27529
- fileSize?: number;
27530
- };
27531
28269
  params: {
27532
- header: {
27533
- "idempotency-key": string;
27534
- };
27535
- } | undefined;
27536
- }, `${string}/${string}`>>;
27537
- /**
27538
- * Replace the Artisan import data on one of the caller's existing roasts,
27539
- * re-deriving its curve, events, and computed metrics while preserving the
27540
- * roast's identity. Pass `ifMatch` (the roast's `last_updated`) to enable
27541
- * optimistic concurrency (409 on mismatch).
27542
- */
27543
- replaceArtisanImport: (id: number, body: RoastArtisanImportReplaceRequest, options?: {
27544
- ifMatch?: string;
27545
- }) => Promise<openapi_fetch.FetchResponse<{
27546
- parameters: {
27547
- query?: never;
27548
- header?: {
27549
- "if-match"?: string;
27550
- };
27551
28270
  path: {
27552
28271
  id: number;
27553
28272
  };
27554
- cookie?: never;
27555
28273
  };
27556
- requestBody: {
27557
- content: {
27558
- "application/json": components["schemas"]["RoastArtisanImportReplaceRequest"];
28274
+ }, `${string}/${string}`>>;
28275
+ };
28276
+ referenceProfiles: {
28277
+ /** List Studio reference profiles without mixing them into roast history. */
28278
+ list: (includeArchived?: boolean) => Promise<openapi_fetch.FetchResponse<{
28279
+ parameters: {
28280
+ query?: {
28281
+ includeArchived?: boolean;
27559
28282
  };
28283
+ header?: never;
28284
+ path?: never;
28285
+ cookie?: never;
27560
28286
  };
28287
+ requestBody?: never;
27561
28288
  responses: {
27562
28289
  200: {
27563
28290
  headers: {
@@ -27570,10 +28297,10 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27570
28297
  [name: string]: unknown;
27571
28298
  };
27572
28299
  content: {
27573
- "application/json": components["schemas"]["RoastImportResponse"];
28300
+ "application/json": components["schemas"]["ReferenceProfileListResponse"];
27574
28301
  };
27575
28302
  };
27576
- 400: {
28303
+ 401: {
27577
28304
  headers: {
27578
28305
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27579
28306
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27587,7 +28314,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27587
28314
  "application/json": components["schemas"]["ErrorResponse"];
27588
28315
  };
27589
28316
  };
27590
- 401: {
28317
+ 403: {
27591
28318
  headers: {
27592
28319
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27593
28320
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27601,7 +28328,41 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27601
28328
  "application/json": components["schemas"]["ErrorResponse"];
27602
28329
  };
27603
28330
  };
27604
- 403: {
28331
+ 429: components["responses"]["ApiRateLimitExceeded"];
28332
+ };
28333
+ }, {
28334
+ params: {
28335
+ query: {
28336
+ includeArchived: boolean;
28337
+ };
28338
+ };
28339
+ }, `${string}/${string}`>>;
28340
+ get: (id: string) => Promise<openapi_fetch.FetchResponse<{
28341
+ parameters: {
28342
+ query?: never;
28343
+ header?: never;
28344
+ path: {
28345
+ id: string;
28346
+ };
28347
+ cookie?: never;
28348
+ };
28349
+ requestBody?: never;
28350
+ responses: {
28351
+ 200: {
28352
+ headers: {
28353
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
28354
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
28355
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
28356
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
28357
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
28358
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
28359
+ [name: string]: unknown;
28360
+ };
28361
+ content: {
28362
+ "application/json": components["schemas"]["ReferenceProfileResponse"];
28363
+ };
28364
+ };
28365
+ 400: {
27605
28366
  headers: {
27606
28367
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27607
28368
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27615,7 +28376,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27615
28376
  "application/json": components["schemas"]["ErrorResponse"];
27616
28377
  };
27617
28378
  };
27618
- 404: {
28379
+ 401: {
27619
28380
  headers: {
27620
28381
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27621
28382
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27629,7 +28390,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27629
28390
  "application/json": components["schemas"]["ErrorResponse"];
27630
28391
  };
27631
28392
  };
27632
- 409: {
28393
+ 403: {
27633
28394
  headers: {
27634
28395
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27635
28396
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27643,7 +28404,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27643
28404
  "application/json": components["schemas"]["ErrorResponse"];
27644
28405
  };
27645
28406
  };
27646
- 429: {
28407
+ 404: {
27647
28408
  headers: {
27648
28409
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27649
28410
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27651,15 +28412,13 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27651
28412
  "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
27652
28413
  "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
27653
28414
  "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
27654
- "Retry-After": components["headers"]["Retry-After"];
27655
- "X-RateLimit-Blocked-By": components["headers"]["X-RateLimit-Blocked-By"];
27656
28415
  [name: string]: unknown;
27657
28416
  };
27658
28417
  content: {
27659
28418
  "application/json": components["schemas"]["ErrorResponse"];
27660
28419
  };
27661
28420
  };
27662
- 503: {
28421
+ 409: {
27663
28422
  headers: {
27664
28423
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27665
28424
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27673,32 +28432,22 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27673
28432
  "application/json": components["schemas"]["ErrorResponse"];
27674
28433
  };
27675
28434
  };
28435
+ 429: components["responses"]["ApiRateLimitExceeded"];
27676
28436
  };
27677
28437
  }, {
27678
28438
  params: {
27679
28439
  path: {
27680
- id: number;
28440
+ id: string;
27681
28441
  };
27682
- header: {
27683
- "if-match": string;
27684
- } | undefined;
27685
- };
27686
- body: {
27687
- fileName: string;
27688
- fileContent: string;
27689
- fileSize?: number;
27690
28442
  };
27691
28443
  }, `${string}/${string}`>>;
27692
- /**
27693
- * Clear import-derived curve, events, metrics, and provenance data from
27694
- * one of the caller's existing roasts without deleting the roast profile.
27695
- */
27696
- clearArtisanImport: (id: number) => Promise<openapi_fetch.FetchResponse<{
28444
+ chart: (id: string, revisionId: string) => Promise<openapi_fetch.FetchResponse<{
27697
28445
  parameters: {
27698
28446
  query?: never;
27699
28447
  header?: never;
27700
28448
  path: {
27701
- id: number;
28449
+ id: string;
28450
+ revisionId: string;
27702
28451
  };
27703
28452
  cookie?: never;
27704
28453
  };
@@ -27715,10 +28464,10 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27715
28464
  [name: string]: unknown;
27716
28465
  };
27717
28466
  content: {
27718
- "application/json": components["schemas"]["RoastArtisanImportClearResponse"];
28467
+ "application/json": components["schemas"]["ReferenceProfileChartResponse"];
27719
28468
  };
27720
28469
  };
27721
- 401: {
28470
+ 400: {
27722
28471
  headers: {
27723
28472
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27724
28473
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27732,7 +28481,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27732
28481
  "application/json": components["schemas"]["ErrorResponse"];
27733
28482
  };
27734
28483
  };
27735
- 403: {
28484
+ 401: {
27736
28485
  headers: {
27737
28486
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27738
28487
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27746,7 +28495,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27746
28495
  "application/json": components["schemas"]["ErrorResponse"];
27747
28496
  };
27748
28497
  };
27749
- 404: {
28498
+ 403: {
27750
28499
  headers: {
27751
28500
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27752
28501
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27760,7 +28509,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27760
28509
  "application/json": components["schemas"]["ErrorResponse"];
27761
28510
  };
27762
28511
  };
27763
- 429: {
28512
+ 404: {
27764
28513
  headers: {
27765
28514
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27766
28515
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27768,15 +28517,13 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27768
28517
  "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
27769
28518
  "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
27770
28519
  "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
27771
- "Retry-After": components["headers"]["Retry-After"];
27772
- "X-RateLimit-Blocked-By": components["headers"]["X-RateLimit-Blocked-By"];
27773
28520
  [name: string]: unknown;
27774
28521
  };
27775
28522
  content: {
27776
28523
  "application/json": components["schemas"]["ErrorResponse"];
27777
28524
  };
27778
28525
  };
27779
- 503: {
28526
+ 409: {
27780
28527
  headers: {
27781
28528
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27782
28529
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27790,27 +28537,32 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27790
28537
  "application/json": components["schemas"]["ErrorResponse"];
27791
28538
  };
27792
28539
  };
28540
+ 429: components["responses"]["ApiRateLimitExceeded"];
27793
28541
  };
27794
28542
  }, {
27795
28543
  params: {
27796
28544
  path: {
27797
- id: number;
28545
+ id: string;
28546
+ revisionId: string;
27798
28547
  };
27799
28548
  };
27800
28549
  }, `${string}/${string}`>>;
27801
- };
27802
- referenceProfiles: {
27803
- /** List Studio reference profiles without mixing them into roast history. */
27804
- list: (includeArchived?: boolean) => Promise<openapi_fetch.FetchResponse<{
28550
+ /** Preview explicit changes without saving or changing the parent. */
28551
+ preview: (id: string, revisionId: string, body: ReferenceProfileGenerationRequest) => Promise<openapi_fetch.FetchResponse<{
27805
28552
  parameters: {
27806
- query?: {
27807
- includeArchived?: boolean;
27808
- };
28553
+ query?: never;
27809
28554
  header?: never;
27810
- path?: never;
28555
+ path: {
28556
+ id: string;
28557
+ revisionId: string;
28558
+ };
27811
28559
  cookie?: never;
27812
28560
  };
27813
- requestBody?: never;
28561
+ requestBody: {
28562
+ content: {
28563
+ "application/json": components["schemas"]["ReferenceProfileGenerationRequest"];
28564
+ };
28565
+ };
27814
28566
  responses: {
27815
28567
  200: {
27816
28568
  headers: {
@@ -27823,7 +28575,21 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27823
28575
  [name: string]: unknown;
27824
28576
  };
27825
28577
  content: {
27826
- "application/json": components["schemas"]["ReferenceProfileListResponse"];
28578
+ "application/json": components["schemas"]["ReferenceProfileGenerationPreviewResponse"];
28579
+ };
28580
+ };
28581
+ 400: {
28582
+ headers: {
28583
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
28584
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
28585
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
28586
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
28587
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
28588
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
28589
+ [name: string]: unknown;
28590
+ };
28591
+ content: {
28592
+ "application/json": components["schemas"]["ErrorResponse"];
27827
28593
  };
27828
28594
  };
27829
28595
  401: {
@@ -27854,27 +28620,80 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27854
28620
  "application/json": components["schemas"]["ErrorResponse"];
27855
28621
  };
27856
28622
  };
28623
+ 404: {
28624
+ headers: {
28625
+ "X-RateLimit-Limit": components["headers"] /** Reflect bounded recent messages into versioned session-owner memory. */["X-RateLimit-Limit"];
28626
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
28627
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
28628
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
28629
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
28630
+ "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
28631
+ [name: string]: unknown;
28632
+ };
28633
+ content: {
28634
+ "application/json": components["schemas"]["ErrorResponse"];
28635
+ };
28636
+ };
28637
+ 409: {
28638
+ headers: {
28639
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
28640
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
28641
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
28642
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
28643
+ "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
28644
+ "X-RateLimit-Burst-Reset": components["headers"] /**
28645
+ * Atomically create owner-private manual inventory lots. The required
28646
+ * idempotency UUID is the stable batch identity and can be reconciled
28647
+ * with `getManualBatch` after an uncertain response.
28648
+ */["X-RateLimit-Burst-Reset"];
28649
+ [name: string]: unknown;
28650
+ };
28651
+ content: {
28652
+ "application/json": components["schemas"]["ErrorResponse"];
28653
+ };
28654
+ };
27857
28655
  429: components["responses"]["ApiRateLimitExceeded"];
27858
28656
  };
27859
28657
  }, {
27860
28658
  params: {
27861
- query: {
27862
- includeArchived: boolean;
28659
+ path: {
28660
+ id: string;
28661
+ revisionId: string;
28662
+ };
28663
+ };
28664
+ body: {
28665
+ title: string;
28666
+ notes?: string;
28667
+ changes: {
28668
+ temperatureAdjustments: {
28669
+ kind: "bean_temperature" | "environmental_temperature";
28670
+ startMilliseconds: number;
28671
+ endMilliseconds: number;
28672
+ delta: number;
28673
+ }[];
27863
28674
  };
27864
28675
  };
27865
28676
  }, `${string}/${string}`>>;
27866
- get: (id: string) => Promise<openapi_fetch.FetchResponse<{
28677
+ /** Save an immutable generated reference with parent lineage. */
28678
+ generate: (id: string, revisionId: string, body: ReferenceProfileGenerationRequest, idempotencyKey: string) => Promise<openapi_fetch.FetchResponse<{
27867
28679
  parameters: {
27868
28680
  query?: never;
27869
- header?: never;
28681
+ header: {
28682
+ "idempotency-key": string;
28683
+ };
27870
28684
  path: {
27871
28685
  id: string;
28686
+ revisionId: string;
27872
28687
  };
27873
28688
  cookie?: never;
27874
28689
  };
27875
- requestBody?: never;
28690
+ requestBody: {
28691
+ content: {
28692
+ "application/json": components["schemas"]["ReferenceProfileGenerationRequest"];
28693
+ };
28694
+ };
27876
28695
  responses: {
27877
- 200: {
28696
+ 201: {
27878
28697
  headers: {
27879
28698
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27880
28699
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
@@ -27890,7 +28709,10 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27890
28709
  };
27891
28710
  400: {
27892
28711
  headers: {
27893
- "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
28712
+ "X-RateLimit-Limit": components["headers"] /**
28713
+ * Update one of the caller's own inventory rows. Pass `ifMatch` (the
28714
+ * row's `last_updated`) to enable optimistic concurrency (409 on mismatch).
28715
+ */["X-RateLimit-Limit"];
27894
28716
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
27895
28717
  "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
27896
28718
  "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
@@ -27905,7 +28727,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27905
28727
  401: {
27906
28728
  headers: {
27907
28729
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
27908
- "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
28730
+ "X-RateLimit-Remaining": components["headers"] /** List the caller's own roast profiles (owner-scoped). */["X-RateLimit-Remaining"];
27909
28731
  "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
27910
28732
  "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
27911
28733
  "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
@@ -27937,7 +28759,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27937
28759
  "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
27938
28760
  "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
27939
28761
  "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
27940
- "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
28762
+ "X-RateLimit-Burst-Reset": components["headers"] /** Delete one of the caller's own roast profiles. */["X-RateLimit-Burst-Reset"];
27941
28763
  [name: string]: unknown;
27942
28764
  };
27943
28765
  content: {
@@ -27964,10 +28786,27 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27964
28786
  params: {
27965
28787
  path: {
27966
28788
  id: string;
28789
+ revisionId: string;
28790
+ };
28791
+ header: {
28792
+ "idempotency-key": string;
28793
+ };
28794
+ };
28795
+ body: {
28796
+ title: string;
28797
+ notes?: string;
28798
+ changes: {
28799
+ temperatureAdjustments: {
28800
+ kind: "bean_temperature" | "environmental_temperature";
28801
+ startMilliseconds: number;
28802
+ endMilliseconds: number;
28803
+ delta: number;
28804
+ }[];
27967
28805
  };
27968
28806
  };
27969
28807
  }, `${string}/${string}`>>;
27970
- chart: (id: string, revisionId: string) => Promise<openapi_fetch.FetchResponse<{
28808
+ /** Retrieve only a saved unsigned generated background profile. */
28809
+ exportGenerated: (id: string, revisionId: string) => Promise<openapi_fetch.FetchResponse<{
27971
28810
  parameters: {
27972
28811
  query?: never;
27973
28812
  header?: never;
@@ -27990,7 +28829,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
27990
28829
  [name: string]: unknown;
27991
28830
  };
27992
28831
  content: {
27993
- "application/json": components["schemas"]["ReferenceProfileChartResponse"];
28832
+ "application/json": components["schemas"]["ReferenceProfileGenerationExportResponse"];
27994
28833
  };
27995
28834
  };
27996
28835
  400: {
@@ -28025,7 +28864,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
28025
28864
  headers: {
28026
28865
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
28027
28866
  "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
28028
- "X-RateLimit-Reset": components["headers"] /** Parchment Price Index (aggregate snapshots). */["X-RateLimit-Reset"];
28867
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
28029
28868
  "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
28030
28869
  "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
28031
28870
  "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
@@ -28079,11 +28918,7 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
28079
28918
  header: {
28080
28919
  "idempotency-key": string;
28081
28920
  };
28082
- path? /**
28083
- * Open a raw AI SDK UI-message stream. The response body is deliberately
28084
- * left unread so BFFs and browser transports can forward chunks without
28085
- * buffering. Aborting the supplied signal cancels the upstream request.
28086
- */: never;
28921
+ path?: never;
28087
28922
  cookie?: never;
28088
28923
  };
28089
28924
  requestBody: {
@@ -28342,11 +29177,9 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
28342
29177
  400: {
28343
29178
  headers: {
28344
29179
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
28345
- "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
29180
+ "X-RateLimit-Remaining": components["headers"] /** Create an API key. The raw secret is returned only once. */["X-RateLimit-Remaining"];
28346
29181
  "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
28347
- "X-RateLimit-Burst-Limit":
28348
- /** Rotate an API key and return the replacement secret once. */
28349
- components["headers"]["X-RateLimit-Burst-Limit"];
29182
+ "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
28350
29183
  "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
28351
29184
  "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
28352
29185
  [name: string]: unknown;
@@ -28372,9 +29205,9 @@ declare function createParchmentClient(options: ParchmentClientOptions): {
28372
29205
  403: {
28373
29206
  headers: {
28374
29207
  "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
28375
- "X-RateLimit-Remaining": components["headers"] /** Create or replay an embedded Checkout Session after activation. */["X-RateLimit-Remaining"];
29208
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
28376
29209
  "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
28377
- "X-RateLimit-Burst-Limit": components["headers"]["X-RateLimit-Burst-Limit"];
29210
+ "X-RateLimit-Burst-Limit": components["headers"] /** Create or replay an embedded Checkout Session after activation. */["X-RateLimit-Burst-Limit"];
28378
29211
  "X-RateLimit-Burst-Remaining": components["headers"]["X-RateLimit-Burst-Remaining"];
28379
29212
  "X-RateLimit-Burst-Reset": components["headers"]["X-RateLimit-Burst-Reset"];
28380
29213
  [name: string]: unknown;