@smartytalent/mcp-tools 0.1.33-dev.27 → 0.1.33-dev.28

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 +295 -3
  2. package/package.json +1 -1
package/dist/tools.json CHANGED
@@ -10814,14 +10814,73 @@
10814
10814
  "inputSchema": {
10815
10815
  "type": "object",
10816
10816
  "properties": {
10817
- "filterStatus": {
10817
+ "filterFolder": {
10818
10818
  "type": "string",
10819
- "description": "Returns calls with the current status (active, archived). If not provided, the default value will be set to 'active'.",
10819
+ "description": "Filter by folder bucket. Mirrors the left-nav chips. Single-status\nfolders translate to filterStatus + filterDirection internally\n(drafts/scheduled/cancelled/archived/incoming/outgoing). Multi-\nstatus folders (active, missed) use a Scan path. Conflicts with\nexplicit filterStatus / filterDirection (request returns 400).",
10820
10820
  "enum": [
10821
+ "drafts",
10822
+ "scheduled",
10821
10823
  "active",
10824
+ "incoming",
10825
+ "outgoing",
10826
+ "missed",
10827
+ "cancelled",
10828
+ "archived"
10829
+ ]
10830
+ },
10831
+ "filterStatus": {
10832
+ "type": "string",
10833
+ "description": "Filter by status. Accepts single value or comma-separated list\n(e.g. `queued,ringing,in-progress`). Comma-list routes to the\nScan path (slower, no cursor pagination).",
10834
+ "enum": [
10835
+ "draft",
10836
+ "scheduled",
10837
+ "cancelled",
10838
+ "queued",
10839
+ "ringing",
10840
+ "in-progress",
10841
+ "completed",
10842
+ "failed",
10843
+ "no-answer",
10844
+ "busy",
10845
+ "voicemail",
10846
+ "abandoned",
10822
10847
  "archived"
10823
10848
  ]
10824
10849
  },
10850
+ "filterDirection": {
10851
+ "type": "string",
10852
+ "description": "Filter by direction (inbound or outbound).",
10853
+ "enum": [
10854
+ "inbound",
10855
+ "outbound"
10856
+ ]
10857
+ },
10858
+ "filterProtocol": {
10859
+ "type": "string",
10860
+ "description": "Filter by wire protocol. `phone` is PSTN via Twilio; `webrtc` reserved for the future recruiter Voice SDK.",
10861
+ "enum": [
10862
+ "phone",
10863
+ "webrtc"
10864
+ ]
10865
+ },
10866
+ "filterFromIdentifier": {
10867
+ "type": "string",
10868
+ "description": "Filter by caller's protocol-native handle (E.164 phone for PSTN). Indexed via FromIdentifierIndex GSI."
10869
+ },
10870
+ "filterConversationId": {
10871
+ "type": "string",
10872
+ "description": "Filter all calls in a conversation thread. Indexed via ConversationIdIndex GSI."
10873
+ },
10874
+ "filterIntent": {
10875
+ "type": "string",
10876
+ "description": "Filter by AI intent classifier output (inbound calls only). Post-filtered after pagination - acceptable while intent classification is small-scale.",
10877
+ "enum": [
10878
+ "brief_request",
10879
+ "sales_chat",
10880
+ "faq",
10881
+ "other"
10882
+ ]
10883
+ },
10825
10884
  "filterCreatedFrom": {
10826
10885
  "type": "string",
10827
10886
  "description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
@@ -10853,6 +10912,16 @@
10853
10912
  "pageBefore": {
10854
10913
  "type": "string",
10855
10914
  "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
10915
+ },
10916
+ "sort": {
10917
+ "type": "string",
10918
+ "description": "Sort order. Default `-created` (newest first). Currently\nsupports `-created`, `created`, `-modified`, `modified`. Sort\nby `-startedAt` / `-endedAt` / `-durationSec` deferred until\ncomposite GSIs land - see backend backlog #93.",
10919
+ "enum": [
10920
+ "-created",
10921
+ "created",
10922
+ "-modified",
10923
+ "modified"
10924
+ ]
10856
10925
  }
10857
10926
  }
10858
10927
  },
@@ -11070,6 +11139,116 @@
11070
11139
  "type": "string",
11071
11140
  "description": "Unique short identifier (provider/lookup correlation)."
11072
11141
  },
11142
+ "transcriptSegments": {
11143
+ "type": "array",
11144
+ "description": "Structured transcript with timing. Each segment is one turn captured live by the Realtime API. Single shape (NOT translated); text is in `languageCode`. Drives the audio player's clickable speaker timeline.",
11145
+ "items": {
11146
+ "type": "object",
11147
+ "properties": {
11148
+ "startMs": {
11149
+ "type": "integer",
11150
+ "description": "Offset from call start in milliseconds when the speaker began this turn."
11151
+ },
11152
+ "endMs": {
11153
+ "type": "integer",
11154
+ "description": "Offset from call start in milliseconds when the speaker finished this turn."
11155
+ },
11156
+ "speakerType": {
11157
+ "type": "string",
11158
+ "enum": [
11159
+ "ai",
11160
+ "human"
11161
+ ],
11162
+ "description": "Which side spoke this turn."
11163
+ },
11164
+ "speakerName": {
11165
+ "type": "string",
11166
+ "description": "Display name of the speaker at write time."
11167
+ },
11168
+ "text": {
11169
+ "type": "string",
11170
+ "description": "What the speaker said, in `languageCode`."
11171
+ }
11172
+ }
11173
+ }
11174
+ },
11175
+ "speakerStats": {
11176
+ "type": "array",
11177
+ "description": "Per-speaker talk statistics computed once on call finalization. Used by the timeline UI to show talk-time bars.",
11178
+ "items": {
11179
+ "type": "object",
11180
+ "properties": {
11181
+ "speakerType": {
11182
+ "type": "string",
11183
+ "enum": [
11184
+ "ai",
11185
+ "human"
11186
+ ]
11187
+ },
11188
+ "speakerName": {
11189
+ "type": "string"
11190
+ },
11191
+ "talkPercentageBp": {
11192
+ "type": "integer",
11193
+ "description": "Talk-time percentage in basis points (10000 = 100.00%). Integer to avoid float rounding mismatches across clients."
11194
+ }
11195
+ }
11196
+ }
11197
+ },
11198
+ "keyNotes": {
11199
+ "type": "array",
11200
+ "description": "AI-generated bullet points distilled from the transcript. In `languageCode` (NOT multilingual - single shape; FE renders as-is).",
11201
+ "items": {
11202
+ "type": "string"
11203
+ }
11204
+ },
11205
+ "topicsDiscussed": {
11206
+ "type": "array",
11207
+ "description": "Stable facet keys (e.g. `salary`, `experience`, `languagesSpoken`) covered in the call. FE renders via shared `callTopics` dictionary for human-readable labels.",
11208
+ "items": {
11209
+ "type": "string"
11210
+ }
11211
+ },
11212
+ "sentiment": {
11213
+ "type": "string",
11214
+ "enum": [
11215
+ "positive",
11216
+ "neutral",
11217
+ "negative",
11218
+ "mixed"
11219
+ ],
11220
+ "description": "AI-derived sentiment of the conversation as a whole."
11221
+ },
11222
+ "summaryGeneratedAt": {
11223
+ "type": "string",
11224
+ "description": "ISO 8601 timestamp when the AI summary pipeline (keyNotes + topicsDiscussed + sentiment + summary) finalized. Null until the post-call AI Step Function completes."
11225
+ },
11226
+ "folder": {
11227
+ "type": "string",
11228
+ "enum": [
11229
+ "drafts",
11230
+ "scheduled",
11231
+ "active",
11232
+ "incoming",
11233
+ "outgoing",
11234
+ "missed",
11235
+ "cancelled",
11236
+ "archived"
11237
+ ],
11238
+ "description": "Server-derived bucket for the left-nav / filter chips, computed from (direction, status). Mirror of email/chat folder. UI uses this directly; do NOT compute on the client."
11239
+ },
11240
+ "isLive": {
11241
+ "type": "boolean",
11242
+ "description": "Server-derived: true when status is in {queued, ringing, in-progress}. Drives the live indicator + polling decision in the UI."
11243
+ },
11244
+ "hasRecording": {
11245
+ "type": "boolean",
11246
+ "description": "Server-derived: true when recording.mixedMp3Url is present. Lets the list page show a play icon without sending the heavy `recording` block."
11247
+ },
11248
+ "hasTranscript": {
11249
+ "type": "boolean",
11250
+ "description": "Server-derived: true when transcriptSegments has any entries OR transcript dict has any locale keys. Lets the list page show a transcript icon without sending the heavy `transcript`/`transcriptSegments` payload."
11251
+ },
11073
11252
  "timestamps": {
11074
11253
  "title": "ResourceTimestampsSchema",
11075
11254
  "type": "object",
@@ -11493,6 +11672,116 @@
11493
11672
  "type": "string",
11494
11673
  "description": "Unique short identifier (provider/lookup correlation)."
11495
11674
  },
11675
+ "transcriptSegments": {
11676
+ "type": "array",
11677
+ "description": "Structured transcript with timing. Each segment is one turn captured live by the Realtime API. Single shape (NOT translated); text is in `languageCode`. Drives the audio player's clickable speaker timeline.",
11678
+ "items": {
11679
+ "type": "object",
11680
+ "properties": {
11681
+ "startMs": {
11682
+ "type": "integer",
11683
+ "description": "Offset from call start in milliseconds when the speaker began this turn."
11684
+ },
11685
+ "endMs": {
11686
+ "type": "integer",
11687
+ "description": "Offset from call start in milliseconds when the speaker finished this turn."
11688
+ },
11689
+ "speakerType": {
11690
+ "type": "string",
11691
+ "enum": [
11692
+ "ai",
11693
+ "human"
11694
+ ],
11695
+ "description": "Which side spoke this turn."
11696
+ },
11697
+ "speakerName": {
11698
+ "type": "string",
11699
+ "description": "Display name of the speaker at write time."
11700
+ },
11701
+ "text": {
11702
+ "type": "string",
11703
+ "description": "What the speaker said, in `languageCode`."
11704
+ }
11705
+ }
11706
+ }
11707
+ },
11708
+ "speakerStats": {
11709
+ "type": "array",
11710
+ "description": "Per-speaker talk statistics computed once on call finalization. Used by the timeline UI to show talk-time bars.",
11711
+ "items": {
11712
+ "type": "object",
11713
+ "properties": {
11714
+ "speakerType": {
11715
+ "type": "string",
11716
+ "enum": [
11717
+ "ai",
11718
+ "human"
11719
+ ]
11720
+ },
11721
+ "speakerName": {
11722
+ "type": "string"
11723
+ },
11724
+ "talkPercentageBp": {
11725
+ "type": "integer",
11726
+ "description": "Talk-time percentage in basis points (10000 = 100.00%). Integer to avoid float rounding mismatches across clients."
11727
+ }
11728
+ }
11729
+ }
11730
+ },
11731
+ "keyNotes": {
11732
+ "type": "array",
11733
+ "description": "AI-generated bullet points distilled from the transcript. In `languageCode` (NOT multilingual - single shape; FE renders as-is).",
11734
+ "items": {
11735
+ "type": "string"
11736
+ }
11737
+ },
11738
+ "topicsDiscussed": {
11739
+ "type": "array",
11740
+ "description": "Stable facet keys (e.g. `salary`, `experience`, `languagesSpoken`) covered in the call. FE renders via shared `callTopics` dictionary for human-readable labels.",
11741
+ "items": {
11742
+ "type": "string"
11743
+ }
11744
+ },
11745
+ "sentiment": {
11746
+ "type": "string",
11747
+ "enum": [
11748
+ "positive",
11749
+ "neutral",
11750
+ "negative",
11751
+ "mixed"
11752
+ ],
11753
+ "description": "AI-derived sentiment of the conversation as a whole."
11754
+ },
11755
+ "summaryGeneratedAt": {
11756
+ "type": "string",
11757
+ "description": "ISO 8601 timestamp when the AI summary pipeline (keyNotes + topicsDiscussed + sentiment + summary) finalized. Null until the post-call AI Step Function completes."
11758
+ },
11759
+ "folder": {
11760
+ "type": "string",
11761
+ "enum": [
11762
+ "drafts",
11763
+ "scheduled",
11764
+ "active",
11765
+ "incoming",
11766
+ "outgoing",
11767
+ "missed",
11768
+ "cancelled",
11769
+ "archived"
11770
+ ],
11771
+ "description": "Server-derived bucket for the left-nav / filter chips, computed from (direction, status). Mirror of email/chat folder. UI uses this directly; do NOT compute on the client."
11772
+ },
11773
+ "isLive": {
11774
+ "type": "boolean",
11775
+ "description": "Server-derived: true when status is in {queued, ringing, in-progress}. Drives the live indicator + polling decision in the UI."
11776
+ },
11777
+ "hasRecording": {
11778
+ "type": "boolean",
11779
+ "description": "Server-derived: true when recording.mixedMp3Url is present. Lets the list page show a play icon without sending the heavy `recording` block."
11780
+ },
11781
+ "hasTranscript": {
11782
+ "type": "boolean",
11783
+ "description": "Server-derived: true when transcriptSegments has any entries OR transcript dict has any locale keys. Lets the list page show a transcript icon without sending the heavy `transcript`/`transcriptSegments` payload."
11784
+ },
11496
11785
  "timestamps": {
11497
11786
  "title": "ResourceTimestampsSchema",
11498
11787
  "type": "object",
@@ -12776,6 +13065,8 @@
12776
13065
  "description": "Only return states for this resource type.",
12777
13066
  "enum": [
12778
13067
  "emails",
13068
+ "chats",
13069
+ "calls",
12779
13070
  "candidates",
12780
13071
  "conversations",
12781
13072
  "jobs",
@@ -13097,10 +13388,11 @@
13097
13388
  "properties": {
13098
13389
  "filterResourceType": {
13099
13390
  "type": "string",
13100
- "description": "Only return aggregates for this resource type (e.g. emails, chats).",
13391
+ "description": "Only return aggregates for this resource type (e.g. emails, chats, calls).",
13101
13392
  "enum": [
13102
13393
  "emails",
13103
13394
  "chats",
13395
+ "calls",
13104
13396
  "candidates",
13105
13397
  "conversations",
13106
13398
  "jobs",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartytalent/mcp-tools",
3
- "version": "0.1.33-dev.27",
3
+ "version": "0.1.33-dev.28",
4
4
  "description": "MCP tool definitions for SmartyTalent API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",