@smartytalent/openai-tools 0.9.48 → 0.9.50

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 +369 -85
  2. package/package.json +1 -1
package/dist/tools.json CHANGED
@@ -5009,6 +5009,29 @@
5009
5009
  "type": "string",
5010
5010
  "description": "Source of the job posting (e.g. email, erecruiter)"
5011
5011
  },
5012
+ "recruitmentType": {
5013
+ "type": "string",
5014
+ "enum": [
5015
+ "public",
5016
+ "confidential",
5017
+ "internal"
5018
+ ],
5019
+ "description": "Package 8 (2026-10-05): the kind of search of the brief the job was built from; absent = public. A confidential or internal job never stands on the public listing and its application page is not published at the activation; RecOps shares it (the order `jobs:activate` with meta.publishApply)."
5020
+ },
5021
+ "applyPage": {
5022
+ "type": "object",
5023
+ "description": "Package 8 (2026-10-05): the public application page of the job, stamped at every publication (a public job at its activation, a confidential or internal one when RecOps shared it). Absent = not published.",
5024
+ "properties": {
5025
+ "url": {
5026
+ "type": "string",
5027
+ "description": "The page's public address, https://apply.{domain}/{language tag}/{tenant short code}/{job short code}."
5028
+ },
5029
+ "publishedAt": {
5030
+ "type": "string",
5031
+ "format": "date-time"
5032
+ }
5033
+ }
5034
+ },
5012
5035
  "languageCode": {
5013
5036
  "type": "string",
5014
5037
  "description": "Primary language code for the job posting (e.g. en-US, pl-PL)"
@@ -5915,6 +5938,29 @@
5915
5938
  "type": "string",
5916
5939
  "description": "Source of the job posting (e.g. email, erecruiter)"
5917
5940
  },
5941
+ "recruitmentType": {
5942
+ "type": "string",
5943
+ "enum": [
5944
+ "public",
5945
+ "confidential",
5946
+ "internal"
5947
+ ],
5948
+ "description": "Package 8 (2026-10-05): the kind of search of the brief the job was built from; absent = public. A confidential or internal job never stands on the public listing and its application page is not published at the activation; RecOps shares it (the order `jobs:activate` with meta.publishApply)."
5949
+ },
5950
+ "applyPage": {
5951
+ "type": "object",
5952
+ "description": "Package 8 (2026-10-05): the public application page of the job, stamped at every publication (a public job at its activation, a confidential or internal one when RecOps shared it). Absent = not published.",
5953
+ "properties": {
5954
+ "url": {
5955
+ "type": "string",
5956
+ "description": "The page's public address, https://apply.{domain}/{language tag}/{tenant short code}/{job short code}."
5957
+ },
5958
+ "publishedAt": {
5959
+ "type": "string",
5960
+ "format": "date-time"
5961
+ }
5962
+ }
5963
+ },
5918
5964
  "languageCode": {
5919
5965
  "type": "string",
5920
5966
  "description": "Primary language code for the job posting (e.g. en-US, pl-PL)"
@@ -13626,6 +13672,15 @@
13626
13672
  "type": "string",
13627
13673
  "description": "Employment type (e.g. B2B, employment contract)"
13628
13674
  },
13675
+ "recruitmentType": {
13676
+ "type": "string",
13677
+ "enum": [
13678
+ "public",
13679
+ "confidential",
13680
+ "internal"
13681
+ ],
13682
+ "description": "Package 8 (2026-10-05): the kind of search, stored ONLY when the hiring manager said it (in his e-mail, a reply or the intake conversation); absent = public. Copied onto the job at its build; a confidential or internal job never stands on the public listing and its application page waits for RecOps."
13683
+ },
13629
13684
  "seniority": {
13630
13685
  "type": "string",
13631
13686
  "description": "Seniority level for the role (e.g. junior, mid, senior)"
@@ -13690,22 +13745,23 @@
13690
13745
  },
13691
13746
  "source": {
13692
13747
  "type": "string",
13693
- "description": "Where the requirement came from: the hiring manager's own words (hm; an absent field means the same), a file or a web page he sent (document, link; named by sourceLabel), or the previous process (baseline, reserved).",
13748
+ "description": "Where the requirement came from: the hiring manager's own words (hm; an absent field means the same), a file or a web page he sent (document, link; named by sourceLabel), a guest of the intake conversation (guest, package 8; named by sourceLabel, to be confirmed by the manager), or the previous process (baseline, reserved).",
13694
13749
  "enum": [
13695
13750
  "hm",
13696
13751
  "document",
13697
13752
  "link",
13698
- "baseline"
13753
+ "baseline",
13754
+ "guest"
13699
13755
  ]
13700
13756
  },
13701
13757
  "sourceLabel": {
13702
13758
  "type": "string",
13703
13759
  "maxLength": 120,
13704
- "description": "The label of the document or the page the requirement was read from (the file name, the page title). Present only with source document or link."
13760
+ "description": "The label of the document or the page the requirement was read from (the file name, the page title), or the guest's name. Present only with source document, link or guest."
13705
13761
  },
13706
13762
  "toConfirm": {
13707
13763
  "type": "boolean",
13708
- "description": "True while the requirement stands only in a document and the hiring manager has not spoken about it; its tier is preferred at most until he does. Stored only as true: his later word on the criterion sets source to hm and removes this field."
13764
+ "description": "True while the requirement stands only in a document or in a guest's words and the hiring manager has not spoken about it; its tier is preferred at most until he does. Stored only as true: his later word on the criterion sets source to hm and removes this field."
13709
13765
  }
13710
13766
  }
13711
13767
  }
@@ -13800,7 +13856,7 @@
13800
13856
  "type": "string"
13801
13857
  },
13802
13858
  "decisionMaker": {
13803
- "type": "string"
13859
+ "description": "Who decides on the hire, a translated text { locale: string } (since 2026-10-05; a brief written earlier gives its text as { en-US: text }). The type is left open for one release: an API before package 8 gave the en-US text as a plain string, so a reader takes either shape."
13804
13860
  },
13805
13861
  "recruiter": {
13806
13862
  "type": "string"
@@ -14125,6 +14181,15 @@
14125
14181
  "type": "string",
14126
14182
  "description": "Employment type (e.g. B2B, employment contract)"
14127
14183
  },
14184
+ "recruitmentType": {
14185
+ "type": "string",
14186
+ "enum": [
14187
+ "public",
14188
+ "confidential",
14189
+ "internal"
14190
+ ],
14191
+ "description": "Package 8 (2026-10-05): the kind of search, stored ONLY when the hiring manager said it (in his e-mail, a reply or the intake conversation); absent = public. Copied onto the job at its build; a confidential or internal job never stands on the public listing and its application page waits for RecOps."
14192
+ },
14128
14193
  "seniority": {
14129
14194
  "type": "string",
14130
14195
  "description": "Seniority level for the role (e.g. junior, mid, senior)"
@@ -14189,22 +14254,23 @@
14189
14254
  },
14190
14255
  "source": {
14191
14256
  "type": "string",
14192
- "description": "Where the requirement came from: the hiring manager's own words (hm; an absent field means the same), a file or a web page he sent (document, link; named by sourceLabel), or the previous process (baseline, reserved).",
14257
+ "description": "Where the requirement came from: the hiring manager's own words (hm; an absent field means the same), a file or a web page he sent (document, link; named by sourceLabel), a guest of the intake conversation (guest, package 8; named by sourceLabel, to be confirmed by the manager), or the previous process (baseline, reserved).",
14193
14258
  "enum": [
14194
14259
  "hm",
14195
14260
  "document",
14196
14261
  "link",
14197
- "baseline"
14262
+ "baseline",
14263
+ "guest"
14198
14264
  ]
14199
14265
  },
14200
14266
  "sourceLabel": {
14201
14267
  "type": "string",
14202
14268
  "maxLength": 120,
14203
- "description": "The label of the document or the page the requirement was read from (the file name, the page title). Present only with source document or link."
14269
+ "description": "The label of the document or the page the requirement was read from (the file name, the page title), or the guest's name. Present only with source document, link or guest."
14204
14270
  },
14205
14271
  "toConfirm": {
14206
14272
  "type": "boolean",
14207
- "description": "True while the requirement stands only in a document and the hiring manager has not spoken about it; its tier is preferred at most until he does. Stored only as true: his later word on the criterion sets source to hm and removes this field."
14273
+ "description": "True while the requirement stands only in a document or in a guest's words and the hiring manager has not spoken about it; its tier is preferred at most until he does. Stored only as true: his later word on the criterion sets source to hm and removes this field."
14208
14274
  }
14209
14275
  }
14210
14276
  }
@@ -14299,7 +14365,7 @@
14299
14365
  "type": "string"
14300
14366
  },
14301
14367
  "decisionMaker": {
14302
- "type": "string"
14368
+ "description": "Who decides on the hire, a translated text { locale: string } (since 2026-10-05; a brief written earlier gives its text as { en-US: text }). The type is left open for one release: an API before package 8 gave the en-US text as a plain string, so a reader takes either shape."
14303
14369
  },
14304
14370
  "recruiter": {
14305
14371
  "type": "string"
@@ -19318,7 +19384,7 @@
19318
19384
  "properties": {
19319
19385
  "filterStatus": {
19320
19386
  "type": "string",
19321
- "description": "Returns meetings with the current status (active, scheduled, ended, archived). If not provided, the default value will be set to 'active'.",
19387
+ "description": "Returns meetings with the current status (active, scheduled, ended, archived), ordered by `sort`. Without it every status is listed.",
19322
19388
  "enum": [
19323
19389
  "active",
19324
19390
  "scheduled",
@@ -19354,14 +19420,24 @@
19354
19420
  "type": "string",
19355
19421
  "description": "Filters results to include only those modified up to the specified date and time. The value must be in ISO 8601 format."
19356
19422
  },
19423
+ "filterScheduledFrom": {
19424
+ "type": "string",
19425
+ "description": "Meetings whose `scheduledAt` is at or after this time (ISO 8601; no zone = UTC), of `filterStatus` or `scheduled`."
19426
+ },
19427
+ "filterScheduledTo": {
19428
+ "type": "string",
19429
+ "description": "Meetings whose `scheduledAt` is before this time (ISO 8601; no zone = UTC), of `filterStatus` or `scheduled`."
19430
+ },
19357
19431
  "sort": {
19358
19432
  "type": "string",
19359
- "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\nWith `filterStatus` the order is honoured on page-number\npagination (pageNumber): the matching ids are read from the\nstatus index with the sort field and ordered globally before the\npage is cut (since 2026-09-06). Cursor pagination (pageAfter /\npageBefore) and the other equality filters (filterCandidate,\nfilterHost, filterJob, filterShortCode, etc.) keep their own\nindex order; there sort has no effect. Compatible with\ndate-range filters (filterCreatedFrom/To, filterModifiedFrom/To)\nwhich already use the same indexes; sort just picks the\ndirection. On a capped list (meta.page.totalItemsCapped) the\norder applies within the capped window.",
19433
+ "description": "`-created` (the default) / `created`, `-modified` / `modified`, or\n`scheduledAt` / `-scheduledAt` (the meeting's time, of\n`filterStatus` or `scheduled`; a meeting without one sorts first\nascending, last descending). A leading `-` is descending.",
19360
19434
  "enum": [
19361
19435
  "-created",
19362
19436
  "created",
19363
19437
  "-modified",
19364
- "modified"
19438
+ "modified",
19439
+ "scheduledAt",
19440
+ "-scheduledAt"
19365
19441
  ]
19366
19442
  },
19367
19443
  "pageSize": {
@@ -19526,11 +19602,11 @@
19526
19602
  },
19527
19603
  "recordingUrl": {
19528
19604
  "type": "string",
19529
- "description": "Post-meeting recording URL. Populated by different paths\ndepending on meetingType:\n - `chime`: presigned S3 URL minted on read (in showMeeting)\n once `concatenationStatus=success`. Null until then.\n - `recall`: written by the recall.ai webhook handler with\n the recall.ai-hosted recording URL.\n - `external`: null - no recording captured.\nFE should treat presence-not-null as \"playable\" regardless\nof meetingType."
19605
+ "description": "Post-meeting recording URL. Populated by different paths\ndepending on meetingType:\n - `chime`: presigned S3 URL minted on read (in showMeeting) - of the copy cut where the room emptied (2026-10-06) when the post-meeting pipeline made one, of the merged recording otherwise -\n once `concatenationStatus=success`. Null until then.\n - `recall`: written by the recall.ai webhook handler with\n the recall.ai-hosted recording URL.\n - `external`: null - no recording captured.\nFE should treat presence-not-null as \"playable\" regardless\nof meetingType."
19530
19606
  },
19531
19607
  "transcript": {
19532
19608
  "type": "object",
19533
- "description": "Post-meeting transcript. Multilingual dict like calls: { langCode: text }.",
19609
+ "description": "Post-meeting transcript. Multilingual dict like calls: { langCode: text }. showMeeting only: listMeetings rows leave it out (2026-10-06, the meet home).",
19534
19610
  "additionalProperties": {
19535
19611
  "type": "string"
19536
19612
  }
@@ -19650,7 +19726,7 @@
19650
19726
  },
19651
19727
  "transcriptSegments": {
19652
19728
  "type": "array",
19653
- "description": "Time-coded transcript turns. Same shape as call transcriptSegments + adds attendeeId so FE can colour-code participants.",
19729
+ "description": "Time-coded transcript turns. Same shape as call transcriptSegments + adds attendeeId so FE can colour-code participants. showMeeting only: listMeetings rows leave it out (2026-10-06, the meet home).",
19654
19730
  "items": {
19655
19731
  "title": "MeetingTranscriptSegmentSchema",
19656
19732
  "type": "object",
@@ -19795,6 +19871,80 @@
19795
19871
  }
19796
19872
  }
19797
19873
  },
19874
+ "candidateName": {
19875
+ "type": "string",
19876
+ "description": "The name of the candidate the meeting is with (`candidateId`), read with the meeting on every read (2026-10-06, the meet home), so never stale. Absent without a candidate, when the candidate is gone, and for a hiring manager (his meeting list is not scoped to his team yet)."
19877
+ },
19878
+ "conversationSeconds": {
19879
+ "type": "integer",
19880
+ "description": "The conversation's length in seconds, from the first word to the last on the recording's clock (written by the post-meeting pipeline, 2026-10-06). Not the recording's length, which also holds the virtual employee waiting for the manager. Absent until the transcript is made."
19881
+ },
19882
+ "intakeConsent": {
19883
+ "type": "object",
19884
+ "description": "A brief's conversation: the manager's consent to the recording, stored once when he entered (the first stamp stays). Absent when none was given (meetings before the consent door, or he never entered).",
19885
+ "properties": {
19886
+ "recording": {
19887
+ "type": "boolean"
19888
+ },
19889
+ "text": {
19890
+ "type": "string",
19891
+ "description": "The words of the button he pressed, as the page showed them."
19892
+ },
19893
+ "locale": {
19894
+ "type": "string",
19895
+ "description": "The page's language."
19896
+ },
19897
+ "at": {
19898
+ "type": "string",
19899
+ "format": "date-time",
19900
+ "description": "The server's time of the consent."
19901
+ },
19902
+ "userId": {
19903
+ "type": "string",
19904
+ "description": "Who gave it."
19905
+ }
19906
+ }
19907
+ },
19908
+ "issues": {
19909
+ "type": "array",
19910
+ "description": "What went wrong with the meeting, computed from the row on every read (never stored); empty when nothing did. See MeetingIssueSchema for the codes.",
19911
+ "items": {
19912
+ "title": "MeetingIssueSchema",
19913
+ "type": "object",
19914
+ "description": "One thing that went wrong with a meeting (2026-10-06, the meet home):\n - `recordingFailed`: the capture of the recording failed (`detail` = the error).\n - `concatenationFailed`: merging the recording's chunks failed (`detail` = the error).\n - `transcriptMissing`: the recording was merged and no transcript came within an hour of it (the analysis failed or never ran); `at` = an hour after the merge.\n - `botFailed`: the virtual employee ended in an error (`attendeeId`, `detail`).\n - `botNeverJoined`: the meeting ended and the virtual employee never came into the room (`attendeeId`).\n - `avatarGivenUp`: the virtual employee's face was given up for good and the camera stayed off (`attendeeId`, `recoveries`).\n - `managerNeverEntered`: a brief's conversation ended and no signed-in person ever came in (a guest may have).\n - `nobodyEntered`: any other meeting with the virtual employee ended and no person ever came in.",
19915
+ "properties": {
19916
+ "code": {
19917
+ "type": "string",
19918
+ "enum": [
19919
+ "recordingFailed",
19920
+ "concatenationFailed",
19921
+ "transcriptMissing",
19922
+ "botFailed",
19923
+ "botNeverJoined",
19924
+ "avatarGivenUp",
19925
+ "managerNeverEntered",
19926
+ "nobodyEntered"
19927
+ ]
19928
+ },
19929
+ "at": {
19930
+ "type": "string",
19931
+ "description": "When it was known (ISO 8601, as stored)."
19932
+ },
19933
+ "detail": {
19934
+ "type": "string",
19935
+ "description": "The error, cut to 300 characters, where there is one."
19936
+ },
19937
+ "attendeeId": {
19938
+ "type": "string",
19939
+ "description": "The Chime attendee it concerns (the virtual employee)."
19940
+ },
19941
+ "recoveries": {
19942
+ "type": "integer",
19943
+ "description": "avatarGivenUp: how many times the face was raised again before it was given up."
19944
+ }
19945
+ }
19946
+ }
19947
+ },
19798
19948
  "status": {
19799
19949
  "type": "string",
19800
19950
  "enum": [
@@ -19980,6 +20130,24 @@
19980
20130
  }
19981
20131
  }
19982
20132
  },
20133
+ "brief": {
20134
+ "title": "MeetingRelationshipsBriefSchema",
20135
+ "type": "object",
20136
+ "description": "The brief this meeting is the intake conversation of (2026-10-06, the meet home), derived on read from `sourceType: briefs` + `sourceId`; `data: null` for any other meeting.",
20137
+ "properties": {
20138
+ "data": {
20139
+ "type": "object",
20140
+ "properties": {
20141
+ "type": {
20142
+ "type": "string"
20143
+ },
20144
+ "id": {
20145
+ "type": "string"
20146
+ }
20147
+ }
20148
+ }
20149
+ }
20150
+ },
19983
20151
  "job": {
19984
20152
  "title": "MeetingRelationshipsJobSchema",
19985
20153
  "type": "object",
@@ -20197,11 +20365,11 @@
20197
20365
  },
20198
20366
  "recordingUrl": {
20199
20367
  "type": "string",
20200
- "description": "Post-meeting recording URL. Populated by different paths\ndepending on meetingType:\n - `chime`: presigned S3 URL minted on read (in showMeeting)\n once `concatenationStatus=success`. Null until then.\n - `recall`: written by the recall.ai webhook handler with\n the recall.ai-hosted recording URL.\n - `external`: null - no recording captured.\nFE should treat presence-not-null as \"playable\" regardless\nof meetingType."
20368
+ "description": "Post-meeting recording URL. Populated by different paths\ndepending on meetingType:\n - `chime`: presigned S3 URL minted on read (in showMeeting) - of the copy cut where the room emptied (2026-10-06) when the post-meeting pipeline made one, of the merged recording otherwise -\n once `concatenationStatus=success`. Null until then.\n - `recall`: written by the recall.ai webhook handler with\n the recall.ai-hosted recording URL.\n - `external`: null - no recording captured.\nFE should treat presence-not-null as \"playable\" regardless\nof meetingType."
20201
20369
  },
20202
20370
  "transcript": {
20203
20371
  "type": "object",
20204
- "description": "Post-meeting transcript. Multilingual dict like calls: { langCode: text }.",
20372
+ "description": "Post-meeting transcript. Multilingual dict like calls: { langCode: text }. showMeeting only: listMeetings rows leave it out (2026-10-06, the meet home).",
20205
20373
  "additionalProperties": {
20206
20374
  "type": "string"
20207
20375
  }
@@ -20321,7 +20489,7 @@
20321
20489
  },
20322
20490
  "transcriptSegments": {
20323
20491
  "type": "array",
20324
- "description": "Time-coded transcript turns. Same shape as call transcriptSegments + adds attendeeId so FE can colour-code participants.",
20492
+ "description": "Time-coded transcript turns. Same shape as call transcriptSegments + adds attendeeId so FE can colour-code participants. showMeeting only: listMeetings rows leave it out (2026-10-06, the meet home).",
20325
20493
  "items": {
20326
20494
  "title": "MeetingTranscriptSegmentSchema",
20327
20495
  "type": "object",
@@ -20466,6 +20634,80 @@
20466
20634
  }
20467
20635
  }
20468
20636
  },
20637
+ "candidateName": {
20638
+ "type": "string",
20639
+ "description": "The name of the candidate the meeting is with (`candidateId`), read with the meeting on every read (2026-10-06, the meet home), so never stale. Absent without a candidate, when the candidate is gone, and for a hiring manager (his meeting list is not scoped to his team yet)."
20640
+ },
20641
+ "conversationSeconds": {
20642
+ "type": "integer",
20643
+ "description": "The conversation's length in seconds, from the first word to the last on the recording's clock (written by the post-meeting pipeline, 2026-10-06). Not the recording's length, which also holds the virtual employee waiting for the manager. Absent until the transcript is made."
20644
+ },
20645
+ "intakeConsent": {
20646
+ "type": "object",
20647
+ "description": "A brief's conversation: the manager's consent to the recording, stored once when he entered (the first stamp stays). Absent when none was given (meetings before the consent door, or he never entered).",
20648
+ "properties": {
20649
+ "recording": {
20650
+ "type": "boolean"
20651
+ },
20652
+ "text": {
20653
+ "type": "string",
20654
+ "description": "The words of the button he pressed, as the page showed them."
20655
+ },
20656
+ "locale": {
20657
+ "type": "string",
20658
+ "description": "The page's language."
20659
+ },
20660
+ "at": {
20661
+ "type": "string",
20662
+ "format": "date-time",
20663
+ "description": "The server's time of the consent."
20664
+ },
20665
+ "userId": {
20666
+ "type": "string",
20667
+ "description": "Who gave it."
20668
+ }
20669
+ }
20670
+ },
20671
+ "issues": {
20672
+ "type": "array",
20673
+ "description": "What went wrong with the meeting, computed from the row on every read (never stored); empty when nothing did. See MeetingIssueSchema for the codes.",
20674
+ "items": {
20675
+ "title": "MeetingIssueSchema",
20676
+ "type": "object",
20677
+ "description": "One thing that went wrong with a meeting (2026-10-06, the meet home):\n - `recordingFailed`: the capture of the recording failed (`detail` = the error).\n - `concatenationFailed`: merging the recording's chunks failed (`detail` = the error).\n - `transcriptMissing`: the recording was merged and no transcript came within an hour of it (the analysis failed or never ran); `at` = an hour after the merge.\n - `botFailed`: the virtual employee ended in an error (`attendeeId`, `detail`).\n - `botNeverJoined`: the meeting ended and the virtual employee never came into the room (`attendeeId`).\n - `avatarGivenUp`: the virtual employee's face was given up for good and the camera stayed off (`attendeeId`, `recoveries`).\n - `managerNeverEntered`: a brief's conversation ended and no signed-in person ever came in (a guest may have).\n - `nobodyEntered`: any other meeting with the virtual employee ended and no person ever came in.",
20678
+ "properties": {
20679
+ "code": {
20680
+ "type": "string",
20681
+ "enum": [
20682
+ "recordingFailed",
20683
+ "concatenationFailed",
20684
+ "transcriptMissing",
20685
+ "botFailed",
20686
+ "botNeverJoined",
20687
+ "avatarGivenUp",
20688
+ "managerNeverEntered",
20689
+ "nobodyEntered"
20690
+ ]
20691
+ },
20692
+ "at": {
20693
+ "type": "string",
20694
+ "description": "When it was known (ISO 8601, as stored)."
20695
+ },
20696
+ "detail": {
20697
+ "type": "string",
20698
+ "description": "The error, cut to 300 characters, where there is one."
20699
+ },
20700
+ "attendeeId": {
20701
+ "type": "string",
20702
+ "description": "The Chime attendee it concerns (the virtual employee)."
20703
+ },
20704
+ "recoveries": {
20705
+ "type": "integer",
20706
+ "description": "avatarGivenUp: how many times the face was raised again before it was given up."
20707
+ }
20708
+ }
20709
+ }
20710
+ },
20469
20711
  "status": {
20470
20712
  "type": "string",
20471
20713
  "enum": [
@@ -20652,6 +20894,33 @@
20652
20894
  "additionalProperties": true,
20653
20895
  "description": "AI only. Per-bot runtime config: mode, language, targetLanguage, persona, faceId, context (job-context auto-enrichment seed). Echoed back so FE can confirm what the bot received."
20654
20896
  },
20897
+ "consent": {
20898
+ "type": "object",
20899
+ "description": "Request only (package 8, 2026-10-05). The brief's manager agrees to the recording of the\nintake conversation before it starts: `recording: true`, `text` = the words of the button\nexactly as the page showed them, `locale` = the page's language tag. Stored once on the\nmeeting (the first consent stays; a later one changes nothing). A brief's conversation\nwithout a consent given now or stored before answers 400 `SM_ERROR_CONSENT_REQUIRED`;\nthe virtual employee starts only after it.",
20900
+ "required": [
20901
+ "recording",
20902
+ "text",
20903
+ "locale"
20904
+ ],
20905
+ "properties": {
20906
+ "recording": {
20907
+ "type": "boolean",
20908
+ "enum": [
20909
+ true
20910
+ ]
20911
+ },
20912
+ "text": {
20913
+ "type": "string",
20914
+ "minLength": 1,
20915
+ "maxLength": 500
20916
+ },
20917
+ "locale": {
20918
+ "type": "string",
20919
+ "minLength": 2,
20920
+ "maxLength": 20
20921
+ }
20922
+ }
20923
+ },
20655
20924
  "taskArn": {
20656
20925
  "type": "string",
20657
20926
  "description": "AI only. ECS task ARN for the bot (operational). Server-managed."
@@ -20839,6 +21108,33 @@
20839
21108
  "additionalProperties": true,
20840
21109
  "description": "AI only. Per-bot runtime config: mode, language, targetLanguage, persona, faceId, context (job-context auto-enrichment seed). Echoed back so FE can confirm what the bot received."
20841
21110
  },
21111
+ "consent": {
21112
+ "type": "object",
21113
+ "description": "Request only (package 8, 2026-10-05). The brief's manager agrees to the recording of the\nintake conversation before it starts: `recording: true`, `text` = the words of the button\nexactly as the page showed them, `locale` = the page's language tag. Stored once on the\nmeeting (the first consent stays; a later one changes nothing). A brief's conversation\nwithout a consent given now or stored before answers 400 `SM_ERROR_CONSENT_REQUIRED`;\nthe virtual employee starts only after it.",
21114
+ "required": [
21115
+ "recording",
21116
+ "text",
21117
+ "locale"
21118
+ ],
21119
+ "properties": {
21120
+ "recording": {
21121
+ "type": "boolean",
21122
+ "enum": [
21123
+ true
21124
+ ]
21125
+ },
21126
+ "text": {
21127
+ "type": "string",
21128
+ "minLength": 1,
21129
+ "maxLength": 500
21130
+ },
21131
+ "locale": {
21132
+ "type": "string",
21133
+ "minLength": 2,
21134
+ "maxLength": 20
21135
+ }
21136
+ }
21137
+ },
20842
21138
  "taskArn": {
20843
21139
  "type": "string",
20844
21140
  "description": "AI only. ECS task ARN for the bot (operational). Server-managed."
@@ -21015,6 +21311,33 @@
21015
21311
  "additionalProperties": true,
21016
21312
  "description": "AI only. Per-bot runtime config: mode, language, targetLanguage, persona, faceId, context (job-context auto-enrichment seed). Echoed back so FE can confirm what the bot received."
21017
21313
  },
21314
+ "consent": {
21315
+ "type": "object",
21316
+ "description": "Request only (package 8, 2026-10-05). The brief's manager agrees to the recording of the\nintake conversation before it starts: `recording: true`, `text` = the words of the button\nexactly as the page showed them, `locale` = the page's language tag. Stored once on the\nmeeting (the first consent stays; a later one changes nothing). A brief's conversation\nwithout a consent given now or stored before answers 400 `SM_ERROR_CONSENT_REQUIRED`;\nthe virtual employee starts only after it.",
21317
+ "required": [
21318
+ "recording",
21319
+ "text",
21320
+ "locale"
21321
+ ],
21322
+ "properties": {
21323
+ "recording": {
21324
+ "type": "boolean",
21325
+ "enum": [
21326
+ true
21327
+ ]
21328
+ },
21329
+ "text": {
21330
+ "type": "string",
21331
+ "minLength": 1,
21332
+ "maxLength": 500
21333
+ },
21334
+ "locale": {
21335
+ "type": "string",
21336
+ "minLength": 2,
21337
+ "maxLength": 20
21338
+ }
21339
+ }
21340
+ },
21018
21341
  "taskArn": {
21019
21342
  "type": "string",
21020
21343
  "description": "AI only. ECS task ARN for the bot (operational). Server-managed."
@@ -21140,72 +21463,6 @@
21140
21463
  }
21141
21464
  }
21142
21465
  },
21143
- {
21144
- "type": "function",
21145
- "function": {
21146
- "name": "create_meeting_caption_translation",
21147
- "description": "Create Meeting Caption Translation",
21148
- "parameters": {
21149
- "title": "CreateMeetingCaptionTranslationRequestBody",
21150
- "type": "object",
21151
- "required": [
21152
- "data"
21153
- ],
21154
- "properties": {
21155
- "data": {
21156
- "title": "CreateMeetingCaptionTranslationRequestBodyData",
21157
- "type": "object",
21158
- "required": [
21159
- "type",
21160
- "attributes"
21161
- ],
21162
- "properties": {
21163
- "type": {
21164
- "type": "string",
21165
- "enum": [
21166
- "caption-translations"
21167
- ]
21168
- },
21169
- "attributes": {
21170
- "title": "MeetingCaptionTranslationSettingsSchema",
21171
- "type": "object",
21172
- "required": [
21173
- "text",
21174
- "target"
21175
- ],
21176
- "properties": {
21177
- "text": {
21178
- "type": "string",
21179
- "maxLength": 500,
21180
- "description": "One completed caption line (1 to 500 characters)."
21181
- },
21182
- "target": {
21183
- "type": "string",
21184
- "description": "The language the reader wants: a platform language as a tag or a bare language ('en-US', 'pl'). Outside the platform: 400 SM_ERROR_CAPTION_TRANSLATION."
21185
- },
21186
- "source": {
21187
- "type": "string",
21188
- "description": "Optional hint: the meeting's language (a tag or a bare language). The line may still be in another language; the model reads the line."
21189
- }
21190
- }
21191
- }
21192
- }
21193
- }
21194
- }
21195
- }
21196
- }
21197
- },
21198
- {
21199
- "type": "function",
21200
- "function": {
21201
- "name": "meeting_caption_translation_options",
21202
- "description": "Meeting Caption Translation Options",
21203
- "parameters": {
21204
- "type": "object",
21205
- "properties": {}
21206
- }
21207
- }
21208
- },
21209
21466
  {
21210
21467
  "type": "function",
21211
21468
  "function": {
@@ -21334,6 +21591,33 @@
21334
21591
  "additionalProperties": true,
21335
21592
  "description": "AI only. Per-bot runtime config: mode, language, targetLanguage, persona, faceId, context (job-context auto-enrichment seed). Echoed back so FE can confirm what the bot received."
21336
21593
  },
21594
+ "consent": {
21595
+ "type": "object",
21596
+ "description": "Request only (package 8, 2026-10-05). The brief's manager agrees to the recording of the\nintake conversation before it starts: `recording: true`, `text` = the words of the button\nexactly as the page showed them, `locale` = the page's language tag. Stored once on the\nmeeting (the first consent stays; a later one changes nothing). A brief's conversation\nwithout a consent given now or stored before answers 400 `SM_ERROR_CONSENT_REQUIRED`;\nthe virtual employee starts only after it.",
21597
+ "required": [
21598
+ "recording",
21599
+ "text",
21600
+ "locale"
21601
+ ],
21602
+ "properties": {
21603
+ "recording": {
21604
+ "type": "boolean",
21605
+ "enum": [
21606
+ true
21607
+ ]
21608
+ },
21609
+ "text": {
21610
+ "type": "string",
21611
+ "minLength": 1,
21612
+ "maxLength": 500
21613
+ },
21614
+ "locale": {
21615
+ "type": "string",
21616
+ "minLength": 2,
21617
+ "maxLength": 20
21618
+ }
21619
+ }
21620
+ },
21337
21621
  "taskArn": {
21338
21622
  "type": "string",
21339
21623
  "description": "AI only. ECS task ARN for the bot (operational). Server-managed."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartytalent/openai-tools",
3
- "version": "0.9.48",
3
+ "version": "0.9.50",
4
4
  "description": "OpenAI function/tool definitions for SmartyTalent API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",