@smartytalent/openai-tools 0.1.33-dev.1 → 0.1.33-dev.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/tools.json +1139 -216
  2. package/package.json +1 -1
package/dist/tools.json CHANGED
@@ -45,7 +45,7 @@
45
45
  },
46
46
  "pageAfter": {
47
47
  "type": "string",
48
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
48
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
49
49
  },
50
50
  "pageBefore": {
51
51
  "type": "string",
@@ -773,7 +773,7 @@
773
773
  },
774
774
  "pageAfter": {
775
775
  "type": "string",
776
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
776
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
777
777
  },
778
778
  "pageBefore": {
779
779
  "type": "string",
@@ -1472,7 +1472,7 @@
1472
1472
  },
1473
1473
  "pageAfter": {
1474
1474
  "type": "string",
1475
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
1475
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
1476
1476
  },
1477
1477
  "pageBefore": {
1478
1478
  "type": "string",
@@ -1792,7 +1792,7 @@
1792
1792
  },
1793
1793
  "pageAfter": {
1794
1794
  "type": "string",
1795
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
1795
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
1796
1796
  },
1797
1797
  "pageBefore": {
1798
1798
  "type": "string",
@@ -2046,7 +2046,7 @@
2046
2046
  },
2047
2047
  "pageAfter": {
2048
2048
  "type": "string",
2049
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
2049
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
2050
2050
  },
2051
2051
  "pageBefore": {
2052
2052
  "type": "string",
@@ -3241,7 +3241,7 @@
3241
3241
  },
3242
3242
  "pageAfter": {
3243
3243
  "type": "string",
3244
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
3244
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
3245
3245
  },
3246
3246
  "pageBefore": {
3247
3247
  "type": "string",
@@ -4484,7 +4484,7 @@
4484
4484
  },
4485
4485
  "pageAfter": {
4486
4486
  "type": "string",
4487
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
4487
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
4488
4488
  },
4489
4489
  "pageBefore": {
4490
4490
  "type": "string",
@@ -5695,7 +5695,7 @@
5695
5695
  },
5696
5696
  "pageAfter": {
5697
5697
  "type": "string",
5698
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
5698
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
5699
5699
  },
5700
5700
  "pageBefore": {
5701
5701
  "type": "string",
@@ -5976,7 +5976,7 @@
5976
5976
  },
5977
5977
  "pageAfter": {
5978
5978
  "type": "string",
5979
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
5979
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
5980
5980
  },
5981
5981
  "pageBefore": {
5982
5982
  "type": "string",
@@ -6224,7 +6224,7 @@
6224
6224
  },
6225
6225
  "pageAfter": {
6226
6226
  "type": "string",
6227
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
6227
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
6228
6228
  },
6229
6229
  "pageBefore": {
6230
6230
  "type": "string",
@@ -6509,6 +6509,32 @@
6509
6509
  "type": "string",
6510
6510
  "description": "Return only emails belonging to this conversation. Resolved via the ConversationIdIndex GSI (top-level denormalisation of relationships.conversations[0].data.id). Pass the full conversation id (e.g. `980434e7...-2`)."
6511
6511
  },
6512
+ "filterDirection": {
6513
+ "type": "string",
6514
+ "description": "Return only emails with this direction. `inbound` = received from an external sender (Inbox), `outbound` = composed by the tenant (Sent). Resolved via the DirectionIndex GSI. Mutually exclusive with `filterStatus` and `filterConversationId` at the pagination layer.",
6515
+ "enum": [
6516
+ "inbound",
6517
+ "outbound"
6518
+ ]
6519
+ },
6520
+ "filterIds": {
6521
+ "type": "string",
6522
+ "description": "Batch-fetch emails by id. Pass a comma-separated list (e.g. `abc-1,def-2,ghi-3`). Resolves each id's shard from its suffix and issues a BatchGetItem. Used by the inbox UI to hydrate emails referenced by state rows (folder=unseen / starred / spam) without N showEmail calls. Cap: 500 ids per request; beyond that, page the state list and batch again. Bypasses pagination - the returned `data` is the full batch result with no `nextPage` cursor."
6523
+ },
6524
+ "filterIsSystemSpam": {
6525
+ "type": "boolean",
6526
+ "description": "Return only emails the system (broker / classifier) flagged as spam. Used by the Spam folder's `isSystemSpam=true` leg - the other leg comes from `/v1/states?folder=spam`. Backed by a filter-expression scan across shards for v1; promote to a sparse `SystemSpamIndex` if load warrants. Mutually exclusive with the other index-backed filters at the pagination layer."
6527
+ },
6528
+ "sort": {
6529
+ "type": "string",
6530
+ "description": "Order results by a time field. Leading `-` means descending\n(newest-first). Accepted values:\n `-created` newest-first by creation time (CreatedIndex)\n `created` oldest-first by creation time\n `-modified` most-recently-modified first (ModifiedIndex)\n `modified` least-recently-modified first\nTakes effect only when no equality filter (filterStatus,\nfilterConversationId, filterDirection) dictates a different\nindex; equality filters win. Compatible with date-range filters\n(filterCreatedFrom/To, filterModifiedFrom/To) which already use\nthe same indexes; sort just picks the direction.",
6531
+ "enum": [
6532
+ "-created",
6533
+ "created",
6534
+ "-modified",
6535
+ "modified"
6536
+ ]
6537
+ },
6512
6538
  "filterCreatedFrom": {
6513
6539
  "type": "string",
6514
6540
  "description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
@@ -6535,7 +6561,7 @@
6535
6561
  },
6536
6562
  "pageAfter": {
6537
6563
  "type": "string",
6538
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
6564
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
6539
6565
  },
6540
6566
  "pageBefore": {
6541
6567
  "type": "string",
@@ -6579,7 +6605,25 @@
6579
6605
  "type": "string"
6580
6606
  },
6581
6607
  "status": {
6582
- "type": "string"
6608
+ "type": "string",
6609
+ "enum": [
6610
+ "draft",
6611
+ "scheduled",
6612
+ "sent",
6613
+ "suppressed",
6614
+ "archived",
6615
+ "failed",
6616
+ "pending"
6617
+ ],
6618
+ "description": "Lifecycle status. draft = composing, scheduled = workflow owns the send, sent = delivered to SES, suppressed = SES bounce/complaint, archived = user soft-deleted, failed = internal error, pending = transitional."
6619
+ },
6620
+ "direction": {
6621
+ "type": "string",
6622
+ "enum": [
6623
+ "inbound",
6624
+ "outbound"
6625
+ ],
6626
+ "description": "Whether the email was received from an external sender (inbound, populated by the broker) or composed by the tenant/system and sent out (outbound). Populated at create time; never changes."
6583
6627
  },
6584
6628
  "emailFrom": {
6585
6629
  "type": "string"
@@ -6587,27 +6631,33 @@
6587
6631
  "emailTo": {
6588
6632
  "type": "string"
6589
6633
  },
6634
+ "emailCc": {
6635
+ "type": "array",
6636
+ "items": {
6637
+ "type": "string"
6638
+ },
6639
+ "description": "CC recipients. Each entry is an RFC 5322 address string."
6640
+ },
6641
+ "emailBcc": {
6642
+ "type": "array",
6643
+ "items": {
6644
+ "type": "string"
6645
+ },
6646
+ "description": "BCC recipients. Each entry is an RFC 5322 address string."
6647
+ },
6590
6648
  "subject": {
6591
- "oneOf": [
6592
- {
6593
- "type": "string"
6594
- },
6595
- {
6596
- "type": "object",
6597
- "additionalProperties": true
6598
- }
6599
- ]
6649
+ "type": "object",
6650
+ "additionalProperties": {
6651
+ "type": "string"
6652
+ },
6653
+ "description": "Multilingual subject keyed by IETF BCP 47 locale code (e.g. `en-US`, `pl-PL`). The DAL writes per-locale entries from the AI analyze + translate steps; the UI picks the right key based on `conversationLanguageCode`."
6600
6654
  },
6601
6655
  "body": {
6602
- "oneOf": [
6603
- {
6604
- "type": "string"
6605
- },
6606
- {
6607
- "type": "object",
6608
- "additionalProperties": true
6609
- }
6610
- ]
6656
+ "type": "object",
6657
+ "additionalProperties": {
6658
+ "type": "string"
6659
+ },
6660
+ "description": "Multilingual HTML body keyed by IETF BCP 47 locale code. Same shape as `subject`. Body values are HTML strings; plain-text fallback is derived on send."
6611
6661
  },
6612
6662
  "shortCode": {
6613
6663
  "type": "string"
@@ -6624,11 +6674,78 @@
6624
6674
  "isExternalSender": {
6625
6675
  "type": "boolean"
6626
6676
  },
6677
+ "attachments": {
6678
+ "type": "array",
6679
+ "items": {
6680
+ "type": "object",
6681
+ "properties": {
6682
+ "fileName": {
6683
+ "type": "string",
6684
+ "description": "Display name shown in the mail client and used as the attachment filename on send."
6685
+ },
6686
+ "url": {
6687
+ "type": "string",
6688
+ "description": "S3 URL of the stored file. For user-uploaded attachments this is the path returned by POST /v1/files; for system-generated attachments (job/persona/report PDFs) it is the resource's own S3 path."
6689
+ },
6690
+ "type": {
6691
+ "type": "string",
6692
+ "description": "Resource type this attachment belongs to. User-uploaded attachments use `files`; system-generated attachments use the owning resource type: `jobs`, `personas`, `talents`, `candidates`, `reports`, `ads`."
6693
+ },
6694
+ "fileId": {
6695
+ "type": "string",
6696
+ "description": "When `type == \"files\"`, the file resource ID so the frontend can resolve the latest file metadata (status, processing state) without parsing the URL."
6697
+ },
6698
+ "size": {
6699
+ "type": "integer",
6700
+ "description": "File size in bytes. Frontend displays it in the compose preview and mail list. Set by the upload flow from the Content-Length of the S3 object; absent on legacy rows."
6701
+ },
6702
+ "contentType": {
6703
+ "type": "string",
6704
+ "description": "MIME type (e.g. `application/pdf`, `image/png`). Drives icon selection in the UI and the Content-Type header in the outbound MIME part. Absent on legacy rows; frontend should fall back to extension inference."
6705
+ },
6706
+ "thumbnailUrl": {
6707
+ "type": "string",
6708
+ "description": "Optional S3 URL of a PNG preview (first-page render for PDFs/DOCX). Populated by the file service's conversion pipeline when a preview is available. Absent for non-previewable types."
6709
+ }
6710
+ }
6711
+ },
6712
+ "description": "Attachments on the email. For user-uploaded attachments: frontend creates a File via POST /v1/files (which returns a presigned PUT URL), uploads to S3, then references the File here with `type: \"files\"` and the returned `url`/`fileId`. For system-generated attachments (job/persona/report PDFs) the eventbus / outbound path populates these automatically."
6713
+ },
6714
+ "conversationLanguageCode": {
6715
+ "type": "string",
6716
+ "description": "Denormalised copy of the related conversation's languageCode (e.g. `pl-PL`, `en-US`). Avoids an N+1 fetch when the list/detail view needs to pick the right locale for the multilingual subject/body dicts. Source of truth is the conversation row; read-only from the email's perspective."
6717
+ },
6718
+ "parentEmailId": {
6719
+ "type": "string",
6720
+ "description": "Application-layer pointer to the email this one replies to. Used by the UI to render an 'in reply to' link in thread views. Set by the compose flow (frontend passes the parent on Reply) and by the broker when an inbound email matches an outbound via RFC 5322 In-Reply-To. Separate from meta.reference which carries the raw SMTP header chain."
6721
+ },
6722
+ "fromUserId": {
6723
+ "type": "string",
6724
+ "description": "Denormalised user id of the sender for outbound emails (the boe workflow user, or the human composer). Frontend joins this against its local user cache to render avatar + display name without a per-row API call. Null on inbound mail."
6725
+ },
6726
+ "fromCandidateId": {
6727
+ "type": "string",
6728
+ "description": "Denormalised candidate id of the sender for inbound replies from a candidate in an active conversation. Frontend joins this against its local candidate cache to render initials and the candidate name. Null on outbound mail and on anonymous inbound that didn't match a candidate."
6729
+ },
6730
+ "isSystemSpam": {
6731
+ "type": "boolean",
6732
+ "description": "System-level spam verdict on this email. Set by the broker (or a future classifier) at inbound time; never reflects a single user's opinion. Distinct from `status=suppressed`, which is SES reporting we cannot deliver on OUTBOUND. Frontend's Spam folder unions (my states where isSpam=true) with (emails where isSystemSpam=true)."
6733
+ },
6734
+ "scheduleId": {
6735
+ "type": "string",
6736
+ "description": "Foreign key to the Schedule resource driving this email's send. Populated by the wait:process workflow action right after it creates the Schedule. Null when no delayed send is pending (drafts, already-sent rows, inbound mail). To cancel the scheduled send, call DELETE /v1/schedules/{scheduleId} - the email eventbus handler listens for SCHEDULE_CANCELLED and reverts the row back to draft automatically."
6737
+ },
6738
+ "scheduledFireAt": {
6739
+ "type": "string",
6740
+ "description": "Denormalised copy of the owning Schedule's `fireAt` timestamp (ISO 8601). The scheduled-send banner reads this directly so the UI never has to round-trip to /v1/schedules just to render 'Send scheduled for X'. Source of truth is the Schedule; this field stays stable because Schedule.fireAt is immutable post-create."
6741
+ },
6627
6742
  "ttl": {
6628
6743
  "type": "string"
6629
6744
  },
6630
6745
  "sendScheduleDate": {
6631
- "type": "string"
6746
+ "type": "string",
6747
+ "deprecated": true,
6748
+ "description": "Legacy field from the retired CRUD-scheduler path. Kept as read-only metadata on old rows. New emails do not populate it; scheduling is owned by the workflow engine's wait:process action via the Schedule resource."
6632
6749
  },
6633
6750
  "meta": {
6634
6751
  "type": "object",
@@ -6749,6 +6866,25 @@
6749
6866
  }
6750
6867
  }
6751
6868
  }
6869
+ },
6870
+ "schedule": {
6871
+ "title": "EmailRelationshipsScheduleSchema",
6872
+ "type": "object",
6873
+ "description": "The Schedule arming this email's delayed send. Denormalised mirror of scheduleId so clients can `?include=schedule` in a single request. Populated by the email eventbus handler reacting to SCHEDULE_CREATED. Null while the email is draft / already-sent / inbound.",
6874
+ "properties": {
6875
+ "data": {
6876
+ "title": "EmailRelationshipsScheduleDataSchema",
6877
+ "type": "object",
6878
+ "properties": {
6879
+ "type": {
6880
+ "type": "string"
6881
+ },
6882
+ "id": {
6883
+ "type": "string"
6884
+ }
6885
+ }
6886
+ }
6887
+ }
6752
6888
  }
6753
6889
  }
6754
6890
  },
@@ -6822,7 +6958,25 @@
6822
6958
  "type": "string"
6823
6959
  },
6824
6960
  "status": {
6825
- "type": "string"
6961
+ "type": "string",
6962
+ "enum": [
6963
+ "draft",
6964
+ "scheduled",
6965
+ "sent",
6966
+ "suppressed",
6967
+ "archived",
6968
+ "failed",
6969
+ "pending"
6970
+ ],
6971
+ "description": "Lifecycle status. draft = composing, scheduled = workflow owns the send, sent = delivered to SES, suppressed = SES bounce/complaint, archived = user soft-deleted, failed = internal error, pending = transitional."
6972
+ },
6973
+ "direction": {
6974
+ "type": "string",
6975
+ "enum": [
6976
+ "inbound",
6977
+ "outbound"
6978
+ ],
6979
+ "description": "Whether the email was received from an external sender (inbound, populated by the broker) or composed by the tenant/system and sent out (outbound). Populated at create time; never changes."
6826
6980
  },
6827
6981
  "emailFrom": {
6828
6982
  "type": "string"
@@ -6830,27 +6984,33 @@
6830
6984
  "emailTo": {
6831
6985
  "type": "string"
6832
6986
  },
6987
+ "emailCc": {
6988
+ "type": "array",
6989
+ "items": {
6990
+ "type": "string"
6991
+ },
6992
+ "description": "CC recipients. Each entry is an RFC 5322 address string."
6993
+ },
6994
+ "emailBcc": {
6995
+ "type": "array",
6996
+ "items": {
6997
+ "type": "string"
6998
+ },
6999
+ "description": "BCC recipients. Each entry is an RFC 5322 address string."
7000
+ },
6833
7001
  "subject": {
6834
- "oneOf": [
6835
- {
6836
- "type": "string"
6837
- },
6838
- {
6839
- "type": "object",
6840
- "additionalProperties": true
6841
- }
6842
- ]
7002
+ "type": "object",
7003
+ "additionalProperties": {
7004
+ "type": "string"
7005
+ },
7006
+ "description": "Multilingual subject keyed by IETF BCP 47 locale code (e.g. `en-US`, `pl-PL`). The DAL writes per-locale entries from the AI analyze + translate steps; the UI picks the right key based on `conversationLanguageCode`."
6843
7007
  },
6844
7008
  "body": {
6845
- "oneOf": [
6846
- {
6847
- "type": "string"
6848
- },
6849
- {
6850
- "type": "object",
6851
- "additionalProperties": true
6852
- }
6853
- ]
7009
+ "type": "object",
7010
+ "additionalProperties": {
7011
+ "type": "string"
7012
+ },
7013
+ "description": "Multilingual HTML body keyed by IETF BCP 47 locale code. Same shape as `subject`. Body values are HTML strings; plain-text fallback is derived on send."
6854
7014
  },
6855
7015
  "shortCode": {
6856
7016
  "type": "string"
@@ -6867,11 +7027,78 @@
6867
7027
  "isExternalSender": {
6868
7028
  "type": "boolean"
6869
7029
  },
7030
+ "attachments": {
7031
+ "type": "array",
7032
+ "items": {
7033
+ "type": "object",
7034
+ "properties": {
7035
+ "fileName": {
7036
+ "type": "string",
7037
+ "description": "Display name shown in the mail client and used as the attachment filename on send."
7038
+ },
7039
+ "url": {
7040
+ "type": "string",
7041
+ "description": "S3 URL of the stored file. For user-uploaded attachments this is the path returned by POST /v1/files; for system-generated attachments (job/persona/report PDFs) it is the resource's own S3 path."
7042
+ },
7043
+ "type": {
7044
+ "type": "string",
7045
+ "description": "Resource type this attachment belongs to. User-uploaded attachments use `files`; system-generated attachments use the owning resource type: `jobs`, `personas`, `talents`, `candidates`, `reports`, `ads`."
7046
+ },
7047
+ "fileId": {
7048
+ "type": "string",
7049
+ "description": "When `type == \"files\"`, the file resource ID so the frontend can resolve the latest file metadata (status, processing state) without parsing the URL."
7050
+ },
7051
+ "size": {
7052
+ "type": "integer",
7053
+ "description": "File size in bytes. Frontend displays it in the compose preview and mail list. Set by the upload flow from the Content-Length of the S3 object; absent on legacy rows."
7054
+ },
7055
+ "contentType": {
7056
+ "type": "string",
7057
+ "description": "MIME type (e.g. `application/pdf`, `image/png`). Drives icon selection in the UI and the Content-Type header in the outbound MIME part. Absent on legacy rows; frontend should fall back to extension inference."
7058
+ },
7059
+ "thumbnailUrl": {
7060
+ "type": "string",
7061
+ "description": "Optional S3 URL of a PNG preview (first-page render for PDFs/DOCX). Populated by the file service's conversion pipeline when a preview is available. Absent for non-previewable types."
7062
+ }
7063
+ }
7064
+ },
7065
+ "description": "Attachments on the email. For user-uploaded attachments: frontend creates a File via POST /v1/files (which returns a presigned PUT URL), uploads to S3, then references the File here with `type: \"files\"` and the returned `url`/`fileId`. For system-generated attachments (job/persona/report PDFs) the eventbus / outbound path populates these automatically."
7066
+ },
7067
+ "conversationLanguageCode": {
7068
+ "type": "string",
7069
+ "description": "Denormalised copy of the related conversation's languageCode (e.g. `pl-PL`, `en-US`). Avoids an N+1 fetch when the list/detail view needs to pick the right locale for the multilingual subject/body dicts. Source of truth is the conversation row; read-only from the email's perspective."
7070
+ },
7071
+ "parentEmailId": {
7072
+ "type": "string",
7073
+ "description": "Application-layer pointer to the email this one replies to. Used by the UI to render an 'in reply to' link in thread views. Set by the compose flow (frontend passes the parent on Reply) and by the broker when an inbound email matches an outbound via RFC 5322 In-Reply-To. Separate from meta.reference which carries the raw SMTP header chain."
7074
+ },
7075
+ "fromUserId": {
7076
+ "type": "string",
7077
+ "description": "Denormalised user id of the sender for outbound emails (the boe workflow user, or the human composer). Frontend joins this against its local user cache to render avatar + display name without a per-row API call. Null on inbound mail."
7078
+ },
7079
+ "fromCandidateId": {
7080
+ "type": "string",
7081
+ "description": "Denormalised candidate id of the sender for inbound replies from a candidate in an active conversation. Frontend joins this against its local candidate cache to render initials and the candidate name. Null on outbound mail and on anonymous inbound that didn't match a candidate."
7082
+ },
7083
+ "isSystemSpam": {
7084
+ "type": "boolean",
7085
+ "description": "System-level spam verdict on this email. Set by the broker (or a future classifier) at inbound time; never reflects a single user's opinion. Distinct from `status=suppressed`, which is SES reporting we cannot deliver on OUTBOUND. Frontend's Spam folder unions (my states where isSpam=true) with (emails where isSystemSpam=true)."
7086
+ },
7087
+ "scheduleId": {
7088
+ "type": "string",
7089
+ "description": "Foreign key to the Schedule resource driving this email's send. Populated by the wait:process workflow action right after it creates the Schedule. Null when no delayed send is pending (drafts, already-sent rows, inbound mail). To cancel the scheduled send, call DELETE /v1/schedules/{scheduleId} - the email eventbus handler listens for SCHEDULE_CANCELLED and reverts the row back to draft automatically."
7090
+ },
7091
+ "scheduledFireAt": {
7092
+ "type": "string",
7093
+ "description": "Denormalised copy of the owning Schedule's `fireAt` timestamp (ISO 8601). The scheduled-send banner reads this directly so the UI never has to round-trip to /v1/schedules just to render 'Send scheduled for X'. Source of truth is the Schedule; this field stays stable because Schedule.fireAt is immutable post-create."
7094
+ },
6870
7095
  "ttl": {
6871
7096
  "type": "string"
6872
7097
  },
6873
7098
  "sendScheduleDate": {
6874
- "type": "string"
7099
+ "type": "string",
7100
+ "deprecated": true,
7101
+ "description": "Legacy field from the retired CRUD-scheduler path. Kept as read-only metadata on old rows. New emails do not populate it; scheduling is owned by the workflow engine's wait:process action via the Schedule resource."
6875
7102
  },
6876
7103
  "meta": {
6877
7104
  "type": "object",
@@ -6963,7 +7190,7 @@
6963
7190
  },
6964
7191
  "pageAfter": {
6965
7192
  "type": "string",
6966
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
7193
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
6967
7194
  },
6968
7195
  "pageBefore": {
6969
7196
  "type": "string",
@@ -7238,7 +7465,7 @@
7238
7465
  },
7239
7466
  "pageAfter": {
7240
7467
  "type": "string",
7241
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
7468
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
7242
7469
  },
7243
7470
  "pageBefore": {
7244
7471
  "type": "string",
@@ -8111,7 +8338,7 @@
8111
8338
  },
8112
8339
  "pageAfter": {
8113
8340
  "type": "string",
8114
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
8341
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
8115
8342
  },
8116
8343
  "pageBefore": {
8117
8344
  "type": "string",
@@ -8313,6 +8540,24 @@
8313
8540
  }
8314
8541
  }
8315
8542
  }
8543
+ },
8544
+ "email": {
8545
+ "title": "ScheduleRelationshipsEmailSchema",
8546
+ "type": "object",
8547
+ "description": "The email this schedule was armed for. Set by wait:process so the email service can denormalise scheduleId back onto the email row when SCHEDULE_CREATED fires.",
8548
+ "properties": {
8549
+ "data": {
8550
+ "type": "object",
8551
+ "properties": {
8552
+ "type": {
8553
+ "type": "string"
8554
+ },
8555
+ "id": {
8556
+ "type": "string"
8557
+ }
8558
+ }
8559
+ }
8560
+ }
8316
8561
  }
8317
8562
  }
8318
8563
  }
@@ -8554,6 +8799,24 @@
8554
8799
  }
8555
8800
  }
8556
8801
  }
8802
+ },
8803
+ "email": {
8804
+ "title": "ScheduleRelationshipsEmailSchema",
8805
+ "type": "object",
8806
+ "description": "The email this schedule was armed for. Set by wait:process so the email service can denormalise scheduleId back onto the email row when SCHEDULE_CREATED fires.",
8807
+ "properties": {
8808
+ "data": {
8809
+ "type": "object",
8810
+ "properties": {
8811
+ "type": {
8812
+ "type": "string"
8813
+ },
8814
+ "id": {
8815
+ "type": "string"
8816
+ }
8817
+ }
8818
+ }
8819
+ }
8557
8820
  }
8558
8821
  }
8559
8822
  }
@@ -8898,7 +9161,7 @@
8898
9161
  },
8899
9162
  "pageAfter": {
8900
9163
  "type": "string",
8901
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
9164
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
8902
9165
  },
8903
9166
  "pageBefore": {
8904
9167
  "type": "string",
@@ -9609,7 +9872,7 @@
9609
9872
  },
9610
9873
  "pageAfter": {
9611
9874
  "type": "string",
9612
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
9875
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
9613
9876
  },
9614
9877
  "pageBefore": {
9615
9878
  "type": "string",
@@ -9920,7 +10183,7 @@
9920
10183
  },
9921
10184
  "pageAfter": {
9922
10185
  "type": "string",
9923
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
10186
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
9924
10187
  },
9925
10188
  "pageBefore": {
9926
10189
  "type": "string",
@@ -10171,7 +10434,7 @@
10171
10434
  },
10172
10435
  "pageAfter": {
10173
10436
  "type": "string",
10174
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
10437
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
10175
10438
  },
10176
10439
  "pageBefore": {
10177
10440
  "type": "string",
@@ -10602,7 +10865,7 @@
10602
10865
  },
10603
10866
  "pageAfter": {
10604
10867
  "type": "string",
10605
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
10868
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
10606
10869
  },
10607
10870
  "pageBefore": {
10608
10871
  "type": "string",
@@ -10921,7 +11184,7 @@
10921
11184
  },
10922
11185
  "pageAfter": {
10923
11186
  "type": "string",
10924
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
11187
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
10925
11188
  },
10926
11189
  "pageBefore": {
10927
11190
  "type": "string",
@@ -11234,12 +11497,627 @@
11234
11497
  "description": "Specifies the page number to retrieve. Used for traditional pagination."
11235
11498
  },
11236
11499
  "pageAfter": {
11500
+ "type": "string",
11501
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
11502
+ },
11503
+ "pageBefore": {
11504
+ "type": "string",
11505
+ "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
11506
+ }
11507
+ }
11508
+ }
11509
+ }
11510
+ },
11511
+ {
11512
+ "type": "function",
11513
+ "function": {
11514
+ "name": "create_note",
11515
+ "description": "Create Note",
11516
+ "parameters": {
11517
+ "title": "CreateNoteRequestBody",
11518
+ "type": "object",
11519
+ "required": [
11520
+ "data"
11521
+ ],
11522
+ "properties": {
11523
+ "data": {
11524
+ "title": "CreateNoteRequestBodyData",
11525
+ "type": "object",
11526
+ "required": [
11527
+ "type",
11528
+ "attributes"
11529
+ ],
11530
+ "properties": {
11531
+ "type": {
11532
+ "type": "string",
11533
+ "enum": [
11534
+ "notes"
11535
+ ]
11536
+ },
11537
+ "attributes": {
11538
+ "title": "NoteAttributesSchema",
11539
+ "type": "object",
11540
+ "properties": {
11541
+ "name": {
11542
+ "type": "string"
11543
+ },
11544
+ "status": {
11545
+ "type": "string"
11546
+ },
11547
+ "details": {
11548
+ "type": "object",
11549
+ "additionalProperties": {
11550
+ "type": "string"
11551
+ },
11552
+ "description": "Multilingual note details keyed by language code"
11553
+ },
11554
+ "source": {
11555
+ "type": "string",
11556
+ "description": "Source of the note"
11557
+ },
11558
+ "ttl": {
11559
+ "type": "string",
11560
+ "description": "Time-to-live expiration timestamp"
11561
+ },
11562
+ "meta": {
11563
+ "type": "object",
11564
+ "additionalProperties": true
11565
+ },
11566
+ "timestamps": {
11567
+ "title": "ResourceTimestampsSchema",
11568
+ "type": "object",
11569
+ "properties": {
11570
+ "created": {
11571
+ "type": "string",
11572
+ "format": "date-time"
11573
+ },
11574
+ "modified": {
11575
+ "type": "string",
11576
+ "format": "date-time"
11577
+ }
11578
+ }
11579
+ }
11580
+ }
11581
+ },
11582
+ "relationships": {
11583
+ "title": "NoteRelationshipsSchema",
11584
+ "type": "object",
11585
+ "properties": {
11586
+ "candidate": {
11587
+ "title": "NoteRelationshipsCandidateSchema",
11588
+ "type": "object",
11589
+ "properties": {
11590
+ "data": {
11591
+ "title": "NoteRelationshipsCandidateDataSchema",
11592
+ "type": "object",
11593
+ "properties": {
11594
+ "type": {
11595
+ "type": "string"
11596
+ },
11597
+ "id": {
11598
+ "type": "string"
11599
+ }
11600
+ }
11601
+ }
11602
+ }
11603
+ },
11604
+ "translations": {
11605
+ "title": "NoteRelationshipsTranslationsSchema",
11606
+ "type": "object",
11607
+ "properties": {
11608
+ "data": {
11609
+ "type": "array",
11610
+ "items": {
11611
+ "title": "NoteRelationshipsTranslationsDataSchema",
11612
+ "type": "object",
11613
+ "properties": {
11614
+ "type": {
11615
+ "type": "string"
11616
+ },
11617
+ "id": {
11618
+ "type": "string"
11619
+ }
11620
+ }
11621
+ }
11622
+ }
11623
+ }
11624
+ },
11625
+ "report": {
11626
+ "title": "NoteRelationshipsReportSchema",
11627
+ "type": "object",
11628
+ "properties": {
11629
+ "data": {
11630
+ "title": "NoteRelationshipsReportDataSchema",
11631
+ "type": "object",
11632
+ "properties": {
11633
+ "type": {
11634
+ "type": "string"
11635
+ },
11636
+ "id": {
11637
+ "type": "string"
11638
+ }
11639
+ }
11640
+ }
11641
+ }
11642
+ },
11643
+ "operation": {
11644
+ "title": "NoteRelationshipsOperationSchema",
11645
+ "type": "object",
11646
+ "properties": {
11647
+ "data": {
11648
+ "title": "NoteRelationshipsOperationDataSchema",
11649
+ "type": "object",
11650
+ "properties": {
11651
+ "type": {
11652
+ "type": "string"
11653
+ },
11654
+ "id": {
11655
+ "type": "string"
11656
+ }
11657
+ }
11658
+ }
11659
+ }
11660
+ }
11661
+ }
11662
+ }
11663
+ }
11664
+ }
11665
+ }
11666
+ }
11667
+ }
11668
+ },
11669
+ {
11670
+ "type": "function",
11671
+ "function": {
11672
+ "name": "notes_options",
11673
+ "description": "Notes Options",
11674
+ "parameters": {
11675
+ "type": "object",
11676
+ "properties": {}
11677
+ }
11678
+ }
11679
+ },
11680
+ {
11681
+ "type": "function",
11682
+ "function": {
11683
+ "name": "show_note",
11684
+ "description": "Show Note",
11685
+ "parameters": {
11686
+ "type": "object",
11687
+ "properties": {}
11688
+ }
11689
+ }
11690
+ },
11691
+ {
11692
+ "type": "function",
11693
+ "function": {
11694
+ "name": "update_note",
11695
+ "description": "Update Note",
11696
+ "parameters": {
11697
+ "title": "UpdateNoteRequestBody",
11698
+ "type": "object",
11699
+ "required": [
11700
+ "data"
11701
+ ],
11702
+ "properties": {
11703
+ "data": {
11704
+ "title": "UpdateNoteRequestBodyData",
11705
+ "type": "object",
11706
+ "required": [
11707
+ "type",
11708
+ "id",
11709
+ "attributes"
11710
+ ],
11711
+ "properties": {
11712
+ "type": {
11713
+ "type": "string",
11714
+ "enum": [
11715
+ "notes"
11716
+ ]
11717
+ },
11718
+ "id": {
11719
+ "type": "string"
11720
+ },
11721
+ "attributes": {
11722
+ "title": "NoteAttributesSchema",
11723
+ "type": "object",
11724
+ "properties": {
11725
+ "name": {
11726
+ "type": "string"
11727
+ },
11728
+ "status": {
11729
+ "type": "string"
11730
+ },
11731
+ "details": {
11732
+ "type": "object",
11733
+ "additionalProperties": {
11734
+ "type": "string"
11735
+ },
11736
+ "description": "Multilingual note details keyed by language code"
11737
+ },
11738
+ "source": {
11739
+ "type": "string",
11740
+ "description": "Source of the note"
11741
+ },
11742
+ "ttl": {
11743
+ "type": "string",
11744
+ "description": "Time-to-live expiration timestamp"
11745
+ },
11746
+ "meta": {
11747
+ "type": "object",
11748
+ "additionalProperties": true
11749
+ },
11750
+ "timestamps": {
11751
+ "title": "ResourceTimestampsSchema",
11752
+ "type": "object",
11753
+ "properties": {
11754
+ "created": {
11755
+ "type": "string",
11756
+ "format": "date-time"
11757
+ },
11758
+ "modified": {
11759
+ "type": "string",
11760
+ "format": "date-time"
11761
+ }
11762
+ }
11763
+ }
11764
+ }
11765
+ }
11766
+ }
11767
+ }
11768
+ }
11769
+ }
11770
+ }
11771
+ },
11772
+ {
11773
+ "type": "function",
11774
+ "function": {
11775
+ "name": "delete_note",
11776
+ "description": "Delete Note",
11777
+ "parameters": {
11778
+ "type": "object",
11779
+ "properties": {}
11780
+ }
11781
+ }
11782
+ },
11783
+ {
11784
+ "type": "function",
11785
+ "function": {
11786
+ "name": "note_options",
11787
+ "description": "Note Options",
11788
+ "parameters": {
11789
+ "type": "object",
11790
+ "properties": {}
11791
+ }
11792
+ }
11793
+ },
11794
+ {
11795
+ "type": "function",
11796
+ "function": {
11797
+ "name": "list_states",
11798
+ "description": "List States",
11799
+ "parameters": {
11800
+ "type": "object",
11801
+ "properties": {
11802
+ "filterResourceType": {
11803
+ "type": "string",
11804
+ "description": "Only return states for this resource type.",
11805
+ "enum": [
11806
+ "emails",
11807
+ "candidates",
11808
+ "conversations",
11809
+ "jobs",
11810
+ "talents",
11811
+ "personas",
11812
+ "reports",
11813
+ "tasks"
11814
+ ]
11815
+ },
11816
+ "filterResourceIds": {
11817
+ "type": "string",
11818
+ "description": "Comma-separated list of resource ids to batch-fetch. Requires `filterResourceType`."
11819
+ },
11820
+ "folder": {
11821
+ "type": "string",
11822
+ "description": "Folder-style filter. Tagged-union: the fixed folders are an enum,\nand the label folder is a `label:<labelId>` template. Orthogonal\nto filterResourceType and filterResourceIds which scope within\nthe folder.\n\nFixed folders:\n `all` - default, no folder filter\n `unseen` - only unread rows (sparse UnseenIndex)\n `starred` - only starred rows (sparse StarredIndex)\n `spam` - only user-spam-marked rows (sparse SpamIndex)\n\nLabel folder:\n `label:<labelId>` - rows whose `flags.labels` contains labelId\n\nTypeScript callers should narrow this to\n`'all' | 'unseen' | 'starred' | 'spam' | \\`label:${string}\\``\nin their client wrapper; OpenAPI cannot express template-literal\nunions natively."
11823
+ },
11824
+ "pageSize": {
11825
+ "type": "integer",
11826
+ "description": "Specifies the number of items to retrieve per page. The maximum value is 100."
11827
+ },
11828
+ "pageAfter": {
11829
+ "type": "string",
11830
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
11831
+ },
11832
+ "pageBefore": {
11237
11833
  "type": "string",
11238
11834
  "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
11835
+ }
11836
+ }
11837
+ }
11838
+ }
11839
+ },
11840
+ {
11841
+ "type": "function",
11842
+ "function": {
11843
+ "name": "create_state",
11844
+ "description": "Upsert State",
11845
+ "parameters": {
11846
+ "title": "CreateStateRequestBody",
11847
+ "type": "object",
11848
+ "required": [
11849
+ "data"
11850
+ ],
11851
+ "properties": {
11852
+ "data": {
11853
+ "title": "CreateStateRequestBodyData",
11854
+ "type": "object",
11855
+ "required": [
11856
+ "type",
11857
+ "attributes"
11858
+ ],
11859
+ "properties": {
11860
+ "type": {
11861
+ "type": "string",
11862
+ "enum": [
11863
+ "states"
11864
+ ]
11865
+ },
11866
+ "attributes": {
11867
+ "title": "StateAttributesSchema",
11868
+ "type": "object",
11869
+ "properties": {
11870
+ "userId": {
11871
+ "type": "string",
11872
+ "description": "Owner of this state row. Always the authenticated user; never set by the client."
11873
+ },
11874
+ "resourceType": {
11875
+ "type": "string",
11876
+ "enum": [
11877
+ "emails",
11878
+ "candidates",
11879
+ "conversations",
11880
+ "jobs",
11881
+ "talents",
11882
+ "personas",
11883
+ "reports",
11884
+ "tasks"
11885
+ ],
11886
+ "description": "The kind of resource this state describes. Lives in the composite id as `{resourceType}:{resourceId}`."
11887
+ },
11888
+ "resourceId": {
11889
+ "type": "string",
11890
+ "description": "Id of the resource this state describes (e.g. an emailId, candidateId)."
11891
+ },
11892
+ "isSeen": {
11893
+ "type": "boolean",
11894
+ "description": "True if the user has opened the resource at least once. Derived from the presence of `seenAt`; clients can write either `isSeen` or `seenAt` on upsert."
11895
+ },
11896
+ "isStarred": {
11897
+ "type": "boolean",
11898
+ "description": "True if the user has starred/favourited the resource."
11899
+ },
11900
+ "isSpam": {
11901
+ "type": "boolean",
11902
+ "description": "True if the user marked this resource as spam. Distinct from the email service's `suppressed` status, which is SES-driven on outbound delivery; this is an inbound, per-user action."
11903
+ },
11904
+ "seenAt": {
11905
+ "type": "string",
11906
+ "description": "ISO 8601 timestamp of the user's most recent open. Absent means never seen."
11907
+ },
11908
+ "starredAt": {
11909
+ "type": "string",
11910
+ "description": "ISO 8601 timestamp of when the user starred the resource. Absent means not starred; used as the sort key for the `Starred` folder."
11911
+ },
11912
+ "spamAt": {
11913
+ "type": "string",
11914
+ "description": "ISO 8601 timestamp of when the user marked the resource as spam. Absent means not spam; used as the sort key for the `Spam` folder."
11915
+ },
11916
+ "resourceCreatedAt": {
11917
+ "type": "string",
11918
+ "description": "Denormalised copy of the underlying resource's own `created` timestamp. Used as the sparse unread-index sort key so the unread feed surfaces oldest resources first, not oldest state rows."
11919
+ },
11920
+ "flags": {
11921
+ "type": "object",
11922
+ "additionalProperties": true,
11923
+ "description": "Open-ended per-resource flags (e.g. `{muted: true}` on conversations, `{pinned: true}` on candidates). First-class state goes on the top-level attributes; ad-hoc state lives here."
11924
+ },
11925
+ "timestamps": {
11926
+ "title": "ResourceTimestampsSchema",
11927
+ "type": "object",
11928
+ "properties": {
11929
+ "created": {
11930
+ "type": "string",
11931
+ "format": "date-time"
11932
+ },
11933
+ "modified": {
11934
+ "type": "string",
11935
+ "format": "date-time"
11936
+ }
11937
+ }
11938
+ }
11939
+ }
11940
+ }
11941
+ }
11942
+ }
11943
+ }
11944
+ }
11945
+ }
11946
+ },
11947
+ {
11948
+ "type": "function",
11949
+ "function": {
11950
+ "name": "states_options",
11951
+ "description": "States Options",
11952
+ "parameters": {
11953
+ "type": "object",
11954
+ "properties": {}
11955
+ }
11956
+ }
11957
+ },
11958
+ {
11959
+ "type": "function",
11960
+ "function": {
11961
+ "name": "show_state",
11962
+ "description": "Show State",
11963
+ "parameters": {
11964
+ "type": "object",
11965
+ "properties": {}
11966
+ }
11967
+ }
11968
+ },
11969
+ {
11970
+ "type": "function",
11971
+ "function": {
11972
+ "name": "update_state",
11973
+ "description": "Update State",
11974
+ "parameters": {
11975
+ "title": "UpdateStateRequestBody",
11976
+ "type": "object",
11977
+ "required": [
11978
+ "data"
11979
+ ],
11980
+ "properties": {
11981
+ "data": {
11982
+ "title": "UpdateStateRequestBodyData",
11983
+ "type": "object",
11984
+ "required": [
11985
+ "type",
11986
+ "id",
11987
+ "attributes"
11988
+ ],
11989
+ "properties": {
11990
+ "type": {
11991
+ "type": "string",
11992
+ "enum": [
11993
+ "states"
11994
+ ]
11995
+ },
11996
+ "id": {
11997
+ "type": "string"
11998
+ },
11999
+ "attributes": {
12000
+ "title": "StateAttributesSchema",
12001
+ "type": "object",
12002
+ "properties": {
12003
+ "userId": {
12004
+ "type": "string",
12005
+ "description": "Owner of this state row. Always the authenticated user; never set by the client."
12006
+ },
12007
+ "resourceType": {
12008
+ "type": "string",
12009
+ "enum": [
12010
+ "emails",
12011
+ "candidates",
12012
+ "conversations",
12013
+ "jobs",
12014
+ "talents",
12015
+ "personas",
12016
+ "reports",
12017
+ "tasks"
12018
+ ],
12019
+ "description": "The kind of resource this state describes. Lives in the composite id as `{resourceType}:{resourceId}`."
12020
+ },
12021
+ "resourceId": {
12022
+ "type": "string",
12023
+ "description": "Id of the resource this state describes (e.g. an emailId, candidateId)."
12024
+ },
12025
+ "isSeen": {
12026
+ "type": "boolean",
12027
+ "description": "True if the user has opened the resource at least once. Derived from the presence of `seenAt`; clients can write either `isSeen` or `seenAt` on upsert."
12028
+ },
12029
+ "isStarred": {
12030
+ "type": "boolean",
12031
+ "description": "True if the user has starred/favourited the resource."
12032
+ },
12033
+ "isSpam": {
12034
+ "type": "boolean",
12035
+ "description": "True if the user marked this resource as spam. Distinct from the email service's `suppressed` status, which is SES-driven on outbound delivery; this is an inbound, per-user action."
12036
+ },
12037
+ "seenAt": {
12038
+ "type": "string",
12039
+ "description": "ISO 8601 timestamp of the user's most recent open. Absent means never seen."
12040
+ },
12041
+ "starredAt": {
12042
+ "type": "string",
12043
+ "description": "ISO 8601 timestamp of when the user starred the resource. Absent means not starred; used as the sort key for the `Starred` folder."
12044
+ },
12045
+ "spamAt": {
12046
+ "type": "string",
12047
+ "description": "ISO 8601 timestamp of when the user marked the resource as spam. Absent means not spam; used as the sort key for the `Spam` folder."
12048
+ },
12049
+ "resourceCreatedAt": {
12050
+ "type": "string",
12051
+ "description": "Denormalised copy of the underlying resource's own `created` timestamp. Used as the sparse unread-index sort key so the unread feed surfaces oldest resources first, not oldest state rows."
12052
+ },
12053
+ "flags": {
12054
+ "type": "object",
12055
+ "additionalProperties": true,
12056
+ "description": "Open-ended per-resource flags (e.g. `{muted: true}` on conversations, `{pinned: true}` on candidates). First-class state goes on the top-level attributes; ad-hoc state lives here."
12057
+ },
12058
+ "timestamps": {
12059
+ "title": "ResourceTimestampsSchema",
12060
+ "type": "object",
12061
+ "properties": {
12062
+ "created": {
12063
+ "type": "string",
12064
+ "format": "date-time"
12065
+ },
12066
+ "modified": {
12067
+ "type": "string",
12068
+ "format": "date-time"
12069
+ }
12070
+ }
12071
+ }
12072
+ }
12073
+ }
12074
+ }
12075
+ }
12076
+ }
12077
+ }
12078
+ }
12079
+ },
12080
+ {
12081
+ "type": "function",
12082
+ "function": {
12083
+ "name": "delete_state",
12084
+ "description": "Delete State",
12085
+ "parameters": {
12086
+ "type": "object",
12087
+ "properties": {}
12088
+ }
12089
+ }
12090
+ },
12091
+ {
12092
+ "type": "function",
12093
+ "function": {
12094
+ "name": "state_options",
12095
+ "description": "State Options",
12096
+ "parameters": {
12097
+ "type": "object",
12098
+ "properties": {}
12099
+ }
12100
+ }
12101
+ },
12102
+ {
12103
+ "type": "function",
12104
+ "function": {
12105
+ "name": "list_labels",
12106
+ "description": "List Labels",
12107
+ "parameters": {
12108
+ "type": "object",
12109
+ "properties": {
12110
+ "filterStatus": {
12111
+ "type": "string",
12112
+ "description": "filterStatus parameter",
12113
+ "enum": [
12114
+ "active",
12115
+ "archived"
12116
+ ]
11239
12117
  },
11240
- "pageBefore": {
11241
- "type": "string",
11242
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
12118
+ "pageSize": {
12119
+ "type": "integer",
12120
+ "description": "Specifies the number of items to retrieve per page. The maximum value is 100."
11243
12121
  }
11244
12122
  }
11245
12123
  }
@@ -11248,17 +12126,17 @@
11248
12126
  {
11249
12127
  "type": "function",
11250
12128
  "function": {
11251
- "name": "create_note",
11252
- "description": "Create Note",
12129
+ "name": "create_label",
12130
+ "description": "Create Label",
11253
12131
  "parameters": {
11254
- "title": "CreateNoteRequestBody",
12132
+ "title": "CreateLabelRequestBody",
11255
12133
  "type": "object",
11256
12134
  "required": [
11257
12135
  "data"
11258
12136
  ],
11259
12137
  "properties": {
11260
12138
  "data": {
11261
- "title": "CreateNoteRequestBodyData",
12139
+ "title": "CreateLabelRequestBodyData",
11262
12140
  "type": "object",
11263
12141
  "required": [
11264
12142
  "type",
@@ -11268,37 +12146,50 @@
11268
12146
  "type": {
11269
12147
  "type": "string",
11270
12148
  "enum": [
11271
- "notes"
12149
+ "labels"
11272
12150
  ]
11273
12151
  },
11274
12152
  "attributes": {
11275
- "title": "NoteAttributesSchema",
12153
+ "title": "LabelAttributesSchema",
11276
12154
  "type": "object",
11277
12155
  "properties": {
11278
12156
  "name": {
11279
- "type": "string"
12157
+ "type": "string",
12158
+ "description": "Display name. Unique within a scope by convention but not enforced."
11280
12159
  },
11281
- "status": {
11282
- "type": "string"
12160
+ "color": {
12161
+ "type": "string",
12162
+ "description": "Hex or CSS-named color the UI uses to render the label pill."
11283
12163
  },
11284
- "details": {
11285
- "type": "object",
11286
- "additionalProperties": {
11287
- "type": "string"
11288
- },
11289
- "description": "Multilingual note details keyed by language code"
12164
+ "description": {
12165
+ "type": "string"
11290
12166
  },
11291
- "source": {
12167
+ "scope": {
11292
12168
  "type": "string",
11293
- "description": "Source of the note"
12169
+ "enum": [
12170
+ "tenant",
12171
+ "user"
12172
+ ],
12173
+ "description": "tenant = visible to every user in the tenant; user = visible only to the owner."
11294
12174
  },
11295
- "ttl": {
12175
+ "ownerId": {
11296
12176
  "type": "string",
11297
- "description": "Time-to-live expiration timestamp"
12177
+ "description": "Set server-side from the caller. Tenant-scope: tenantId. User-scope: the authenticated user's full userId."
11298
12178
  },
11299
- "meta": {
11300
- "type": "object",
11301
- "additionalProperties": true
12179
+ "resourceTypes": {
12180
+ "type": "array",
12181
+ "items": {
12182
+ "type": "string"
12183
+ },
12184
+ "description": "Optional UI hint: if set, the frontend only exposes this label in the picker for these resource types (emails, candidates, ...). Not enforced server-side."
12185
+ },
12186
+ "status": {
12187
+ "type": "string",
12188
+ "enum": [
12189
+ "active",
12190
+ "archived"
12191
+ ],
12192
+ "description": "Archived labels stay readable (for historical assignments) but disappear from the default list."
11302
12193
  },
11303
12194
  "timestamps": {
11304
12195
  "title": "ResourceTimestampsSchema",
@@ -11315,87 +12206,6 @@
11315
12206
  }
11316
12207
  }
11317
12208
  }
11318
- },
11319
- "relationships": {
11320
- "title": "NoteRelationshipsSchema",
11321
- "type": "object",
11322
- "properties": {
11323
- "candidate": {
11324
- "title": "NoteRelationshipsCandidateSchema",
11325
- "type": "object",
11326
- "properties": {
11327
- "data": {
11328
- "title": "NoteRelationshipsCandidateDataSchema",
11329
- "type": "object",
11330
- "properties": {
11331
- "type": {
11332
- "type": "string"
11333
- },
11334
- "id": {
11335
- "type": "string"
11336
- }
11337
- }
11338
- }
11339
- }
11340
- },
11341
- "translations": {
11342
- "title": "NoteRelationshipsTranslationsSchema",
11343
- "type": "object",
11344
- "properties": {
11345
- "data": {
11346
- "type": "array",
11347
- "items": {
11348
- "title": "NoteRelationshipsTranslationsDataSchema",
11349
- "type": "object",
11350
- "properties": {
11351
- "type": {
11352
- "type": "string"
11353
- },
11354
- "id": {
11355
- "type": "string"
11356
- }
11357
- }
11358
- }
11359
- }
11360
- }
11361
- },
11362
- "report": {
11363
- "title": "NoteRelationshipsReportSchema",
11364
- "type": "object",
11365
- "properties": {
11366
- "data": {
11367
- "title": "NoteRelationshipsReportDataSchema",
11368
- "type": "object",
11369
- "properties": {
11370
- "type": {
11371
- "type": "string"
11372
- },
11373
- "id": {
11374
- "type": "string"
11375
- }
11376
- }
11377
- }
11378
- }
11379
- },
11380
- "operation": {
11381
- "title": "NoteRelationshipsOperationSchema",
11382
- "type": "object",
11383
- "properties": {
11384
- "data": {
11385
- "title": "NoteRelationshipsOperationDataSchema",
11386
- "type": "object",
11387
- "properties": {
11388
- "type": {
11389
- "type": "string"
11390
- },
11391
- "id": {
11392
- "type": "string"
11393
- }
11394
- }
11395
- }
11396
- }
11397
- }
11398
- }
11399
12209
  }
11400
12210
  }
11401
12211
  }
@@ -11406,8 +12216,8 @@
11406
12216
  {
11407
12217
  "type": "function",
11408
12218
  "function": {
11409
- "name": "notes_options",
11410
- "description": "Notes Options",
12219
+ "name": "labels_options",
12220
+ "description": "Labels Options",
11411
12221
  "parameters": {
11412
12222
  "type": "object",
11413
12223
  "properties": {}
@@ -11417,8 +12227,8 @@
11417
12227
  {
11418
12228
  "type": "function",
11419
12229
  "function": {
11420
- "name": "show_note",
11421
- "description": "Show Note",
12230
+ "name": "show_label",
12231
+ "description": "Show Label",
11422
12232
  "parameters": {
11423
12233
  "type": "object",
11424
12234
  "properties": {}
@@ -11428,17 +12238,17 @@
11428
12238
  {
11429
12239
  "type": "function",
11430
12240
  "function": {
11431
- "name": "update_note",
11432
- "description": "Update Note",
12241
+ "name": "update_label",
12242
+ "description": "Update Label",
11433
12243
  "parameters": {
11434
- "title": "UpdateNoteRequestBody",
12244
+ "title": "UpdateLabelRequestBody",
11435
12245
  "type": "object",
11436
12246
  "required": [
11437
12247
  "data"
11438
12248
  ],
11439
12249
  "properties": {
11440
12250
  "data": {
11441
- "title": "UpdateNoteRequestBodyData",
12251
+ "title": "UpdateLabelRequestBodyData",
11442
12252
  "type": "object",
11443
12253
  "required": [
11444
12254
  "type",
@@ -11449,40 +12259,53 @@
11449
12259
  "type": {
11450
12260
  "type": "string",
11451
12261
  "enum": [
11452
- "notes"
12262
+ "labels"
11453
12263
  ]
11454
12264
  },
11455
12265
  "id": {
11456
12266
  "type": "string"
11457
12267
  },
11458
12268
  "attributes": {
11459
- "title": "NoteAttributesSchema",
12269
+ "title": "LabelAttributesSchema",
11460
12270
  "type": "object",
11461
12271
  "properties": {
11462
12272
  "name": {
11463
- "type": "string"
12273
+ "type": "string",
12274
+ "description": "Display name. Unique within a scope by convention but not enforced."
11464
12275
  },
11465
- "status": {
11466
- "type": "string"
12276
+ "color": {
12277
+ "type": "string",
12278
+ "description": "Hex or CSS-named color the UI uses to render the label pill."
11467
12279
  },
11468
- "details": {
11469
- "type": "object",
11470
- "additionalProperties": {
11471
- "type": "string"
11472
- },
11473
- "description": "Multilingual note details keyed by language code"
12280
+ "description": {
12281
+ "type": "string"
11474
12282
  },
11475
- "source": {
12283
+ "scope": {
11476
12284
  "type": "string",
11477
- "description": "Source of the note"
12285
+ "enum": [
12286
+ "tenant",
12287
+ "user"
12288
+ ],
12289
+ "description": "tenant = visible to every user in the tenant; user = visible only to the owner."
11478
12290
  },
11479
- "ttl": {
12291
+ "ownerId": {
11480
12292
  "type": "string",
11481
- "description": "Time-to-live expiration timestamp"
12293
+ "description": "Set server-side from the caller. Tenant-scope: tenantId. User-scope: the authenticated user's full userId."
11482
12294
  },
11483
- "meta": {
11484
- "type": "object",
11485
- "additionalProperties": true
12295
+ "resourceTypes": {
12296
+ "type": "array",
12297
+ "items": {
12298
+ "type": "string"
12299
+ },
12300
+ "description": "Optional UI hint: if set, the frontend only exposes this label in the picker for these resource types (emails, candidates, ...). Not enforced server-side."
12301
+ },
12302
+ "status": {
12303
+ "type": "string",
12304
+ "enum": [
12305
+ "active",
12306
+ "archived"
12307
+ ],
12308
+ "description": "Archived labels stay readable (for historical assignments) but disappear from the default list."
11486
12309
  },
11487
12310
  "timestamps": {
11488
12311
  "title": "ResourceTimestampsSchema",
@@ -11509,8 +12332,8 @@
11509
12332
  {
11510
12333
  "type": "function",
11511
12334
  "function": {
11512
- "name": "delete_note",
11513
- "description": "Delete Note",
12335
+ "name": "delete_label",
12336
+ "description": "Delete Label",
11514
12337
  "parameters": {
11515
12338
  "type": "object",
11516
12339
  "properties": {}
@@ -11520,8 +12343,8 @@
11520
12343
  {
11521
12344
  "type": "function",
11522
12345
  "function": {
11523
- "name": "note_options",
11524
- "description": "Note Options",
12346
+ "name": "label_options",
12347
+ "description": "Label Options",
11525
12348
  "parameters": {
11526
12349
  "type": "object",
11527
12350
  "properties": {}
@@ -11572,7 +12395,7 @@
11572
12395
  },
11573
12396
  "pageAfter": {
11574
12397
  "type": "string",
11575
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
12398
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
11576
12399
  },
11577
12400
  "pageBefore": {
11578
12401
  "type": "string",
@@ -12119,7 +12942,7 @@
12119
12942
  },
12120
12943
  "pageAfter": {
12121
12944
  "type": "string",
12122
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
12945
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
12123
12946
  },
12124
12947
  "pageBefore": {
12125
12948
  "type": "string",
@@ -12453,7 +13276,7 @@
12453
13276
  },
12454
13277
  "pageAfter": {
12455
13278
  "type": "string",
12456
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
13279
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
12457
13280
  },
12458
13281
  "pageBefore": {
12459
13282
  "type": "string",
@@ -12797,7 +13620,7 @@
12797
13620
  },
12798
13621
  "pageAfter": {
12799
13622
  "type": "string",
12800
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
13623
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
12801
13624
  },
12802
13625
  "pageBefore": {
12803
13626
  "type": "string",
@@ -13087,7 +13910,7 @@
13087
13910
  },
13088
13911
  "pageAfter": {
13089
13912
  "type": "string",
13090
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
13913
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
13091
13914
  },
13092
13915
  "pageBefore": {
13093
13916
  "type": "string",
@@ -13325,7 +14148,7 @@
13325
14148
  },
13326
14149
  "pageAfter": {
13327
14150
  "type": "string",
13328
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
14151
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
13329
14152
  },
13330
14153
  "pageBefore": {
13331
14154
  "type": "string",
@@ -13631,7 +14454,7 @@
13631
14454
  },
13632
14455
  "pageAfter": {
13633
14456
  "type": "string",
13634
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
14457
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
13635
14458
  },
13636
14459
  "pageBefore": {
13637
14460
  "type": "string",
@@ -13737,7 +14560,7 @@
13737
14560
  },
13738
14561
  "pageAfter": {
13739
14562
  "type": "string",
13740
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
14563
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
13741
14564
  },
13742
14565
  "pageBefore": {
13743
14566
  "type": "string",
@@ -13825,7 +14648,7 @@
13825
14648
  },
13826
14649
  "pageAfter": {
13827
14650
  "type": "string",
13828
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
14651
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
13829
14652
  },
13830
14653
  "pageBefore": {
13831
14654
  "type": "string",
@@ -13917,7 +14740,7 @@
13917
14740
  },
13918
14741
  "pageAfter": {
13919
14742
  "type": "string",
13920
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
14743
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
13921
14744
  },
13922
14745
  "pageBefore": {
13923
14746
  "type": "string",
@@ -14114,7 +14937,7 @@
14114
14937
  },
14115
14938
  "pageAfter": {
14116
14939
  "type": "string",
14117
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
14940
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
14118
14941
  },
14119
14942
  "pageBefore": {
14120
14943
  "type": "string",
@@ -14357,7 +15180,7 @@
14357
15180
  },
14358
15181
  "pageAfter": {
14359
15182
  "type": "string",
14360
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
15183
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
14361
15184
  },
14362
15185
  "pageBefore": {
14363
15186
  "type": "string",
@@ -14418,12 +15241,62 @@
14418
15241
  "description": "The type of search to perform"
14419
15242
  },
14420
15243
  "query": {
14421
- "type": "object",
14422
- "description": "Search query parameters sent to OpenSearch. Supported keys for talent search: Semantic (full-text match) - \"search\" (multi-match across all text fields), \"name\", \"quickInsights\", \"skillsAndExpertise\", \"professionalExperience\", \"education\", \"experienceAndSeniority\", \"jobPositions\", \"keywords\", \"certifications\", \"industryExperience\", \"languagesSpoken\", \"locationPreferences\", \"personalityAndSoftSkills\", \"availability\", \"workPreferences\", \"workAuthorization\". Filters (exact match) - \"status\", \"source\", \"email\", \"gender\", \"shortCode\", \"isTalentPool\", \"relocationWillingness\", \"requiresSponsorship\", \"careerBreak\". IDs - \"jobId\", \"talentId\"."
15244
+ "description": "Search query parameters sent to OpenSearch. Shape varies by finder `type`. OpenAPI can't express the full type/query correlation as a strict discriminated union (the discriminator lives on the sibling `type` field, not on `query` itself), so this is encoded as `oneOf` over per-type query schemas. Clients should pick the shape matching the `type` they are posting.",
15245
+ "oneOf": [
15246
+ {
15247
+ "$ref": "#/components/schemas/FinderQueryTalentsSchema"
15248
+ },
15249
+ {
15250
+ "$ref": "#/components/schemas/FinderQueryCandidatesSchema"
15251
+ },
15252
+ {
15253
+ "$ref": "#/components/schemas/FinderQueryJobsSchema"
15254
+ },
15255
+ {
15256
+ "$ref": "#/components/schemas/FinderQueryEmailsSchema"
15257
+ }
15258
+ ]
14423
15259
  },
14424
15260
  "results": {
15261
+ "title": "FinderResultsSchema",
14425
15262
  "type": "object",
14426
- "description": "The search results returned from OpenSearch (auto-populated)"
15263
+ "description": "OpenSearch-shaped results attached to the finder record after the search runs. Hits array items carry whatever subset of the index schema was projected.",
15264
+ "properties": {
15265
+ "total": {
15266
+ "type": "integer",
15267
+ "description": "Count of matching documents before pagination."
15268
+ },
15269
+ "hits": {
15270
+ "type": "array",
15271
+ "items": {
15272
+ "title": "FinderResultHitSchema",
15273
+ "type": "object",
15274
+ "description": "Single hit from the OpenSearch query. The `id` equals the underlying resource id (emailId, talentId, candidateId, jobId, ...) so the frontend can navigate directly to that resource. Additional fields vary by finder `type`.",
15275
+ "properties": {
15276
+ "id": {
15277
+ "type": "string",
15278
+ "description": "The underlying resource id (emailId / talentId / candidateId / jobId)."
15279
+ },
15280
+ "tenantId": {
15281
+ "type": "string"
15282
+ },
15283
+ "status": {
15284
+ "type": "string"
15285
+ },
15286
+ "source": {
15287
+ "type": "string"
15288
+ },
15289
+ "created": {
15290
+ "type": "string"
15291
+ },
15292
+ "shortCode": {
15293
+ "type": "string"
15294
+ }
15295
+ },
15296
+ "additionalProperties": true
15297
+ }
15298
+ }
15299
+ }
14427
15300
  },
14428
15301
  "status": {
14429
15302
  "type": "string",
@@ -14645,12 +15518,62 @@
14645
15518
  "description": "The type of search to perform"
14646
15519
  },
14647
15520
  "query": {
14648
- "type": "object",
14649
- "description": "Search query parameters sent to OpenSearch. Supported keys for talent search: Semantic (full-text match) - \"search\" (multi-match across all text fields), \"name\", \"quickInsights\", \"skillsAndExpertise\", \"professionalExperience\", \"education\", \"experienceAndSeniority\", \"jobPositions\", \"keywords\", \"certifications\", \"industryExperience\", \"languagesSpoken\", \"locationPreferences\", \"personalityAndSoftSkills\", \"availability\", \"workPreferences\", \"workAuthorization\". Filters (exact match) - \"status\", \"source\", \"email\", \"gender\", \"shortCode\", \"isTalentPool\", \"relocationWillingness\", \"requiresSponsorship\", \"careerBreak\". IDs - \"jobId\", \"talentId\"."
15521
+ "description": "Search query parameters sent to OpenSearch. Shape varies by finder `type`. OpenAPI can't express the full type/query correlation as a strict discriminated union (the discriminator lives on the sibling `type` field, not on `query` itself), so this is encoded as `oneOf` over per-type query schemas. Clients should pick the shape matching the `type` they are posting.",
15522
+ "oneOf": [
15523
+ {
15524
+ "$ref": "#/components/schemas/FinderQueryTalentsSchema"
15525
+ },
15526
+ {
15527
+ "$ref": "#/components/schemas/FinderQueryCandidatesSchema"
15528
+ },
15529
+ {
15530
+ "$ref": "#/components/schemas/FinderQueryJobsSchema"
15531
+ },
15532
+ {
15533
+ "$ref": "#/components/schemas/FinderQueryEmailsSchema"
15534
+ }
15535
+ ]
14650
15536
  },
14651
15537
  "results": {
15538
+ "title": "FinderResultsSchema",
14652
15539
  "type": "object",
14653
- "description": "The search results returned from OpenSearch (auto-populated)"
15540
+ "description": "OpenSearch-shaped results attached to the finder record after the search runs. Hits array items carry whatever subset of the index schema was projected.",
15541
+ "properties": {
15542
+ "total": {
15543
+ "type": "integer",
15544
+ "description": "Count of matching documents before pagination."
15545
+ },
15546
+ "hits": {
15547
+ "type": "array",
15548
+ "items": {
15549
+ "title": "FinderResultHitSchema",
15550
+ "type": "object",
15551
+ "description": "Single hit from the OpenSearch query. The `id` equals the underlying resource id (emailId, talentId, candidateId, jobId, ...) so the frontend can navigate directly to that resource. Additional fields vary by finder `type`.",
15552
+ "properties": {
15553
+ "id": {
15554
+ "type": "string",
15555
+ "description": "The underlying resource id (emailId / talentId / candidateId / jobId)."
15556
+ },
15557
+ "tenantId": {
15558
+ "type": "string"
15559
+ },
15560
+ "status": {
15561
+ "type": "string"
15562
+ },
15563
+ "source": {
15564
+ "type": "string"
15565
+ },
15566
+ "created": {
15567
+ "type": "string"
15568
+ },
15569
+ "shortCode": {
15570
+ "type": "string"
15571
+ }
15572
+ },
15573
+ "additionalProperties": true
15574
+ }
15575
+ }
15576
+ }
14654
15577
  },
14655
15578
  "status": {
14656
15579
  "type": "string",
@@ -14769,7 +15692,7 @@
14769
15692
  },
14770
15693
  "pageAfter": {
14771
15694
  "type": "string",
14772
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
15695
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
14773
15696
  },
14774
15697
  "pageBefore": {
14775
15698
  "type": "string",
@@ -15028,7 +15951,7 @@
15028
15951
  },
15029
15952
  "pageAfter": {
15030
15953
  "type": "string",
15031
- "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
15954
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
15032
15955
  },
15033
15956
  "pageBefore": {
15034
15957
  "type": "string",