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

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 +569 -13
  2. package/package.json +1 -1
package/dist/tools.json CHANGED
@@ -336,7 +336,7 @@
336
336
  },
337
337
  "include": {
338
338
  "type": "string",
339
- "description": "JSON:API compound document request comma-separated list of relationship paths to include in the response (e.g. `feedbacks`, `feedbacks,boeUser`). Currently advisory: the service always returns all declared relationships with empty defaults."
339
+ "description": "JSON:API compound document request - comma-separated list of relationship paths to include in the response (e.g. `feedbacks`, `feedbacks,boeUser`). Currently advisory: the service always returns all declared relationships with empty defaults."
340
340
  }
341
341
  },
342
342
  "required": [
@@ -7877,7 +7877,7 @@
7877
7877
  "outcomes": {
7878
7878
  "title": "FeedbackOutcomesSchema",
7879
7879
  "type": "object",
7880
- "description": "Per-outcome feedback rules. Outcome keys map to candidate.recommendationStatusCode: 1=notFit, 2=maybe, 3=fit. Code 0 (not evaluated) never triggers feedback the workflow pauses instead.",
7880
+ "description": "Per-outcome feedback rules. Outcome keys map to candidate.recommendationStatusCode: 1=notFit, 2=maybe, 3=fit. Code 0 (not evaluated) never triggers feedback - the workflow pauses instead.",
7881
7881
  "properties": {
7882
7882
  "notFit": {
7883
7883
  "title": "FeedbackOutcomeRuleSchema",
@@ -8291,7 +8291,7 @@
8291
8291
  "outcomes": {
8292
8292
  "title": "FeedbackOutcomesSchema",
8293
8293
  "type": "object",
8294
- "description": "Per-outcome feedback rules. Outcome keys map to candidate.recommendationStatusCode: 1=notFit, 2=maybe, 3=fit. Code 0 (not evaluated) never triggers feedback the workflow pauses instead.",
8294
+ "description": "Per-outcome feedback rules. Outcome keys map to candidate.recommendationStatusCode: 1=notFit, 2=maybe, 3=fit. Code 0 (not evaluated) never triggers feedback - the workflow pauses instead.",
8295
8295
  "properties": {
8296
8296
  "notFit": {
8297
8297
  "title": "FeedbackOutcomeRuleSchema",
@@ -8777,7 +8777,7 @@
8777
8777
  },
8778
8778
  "actionName": {
8779
8779
  "type": "string",
8780
- "description": "Action identifier (e.g. `email:send`, `call:initiate`). Resolved by the same convention the workflow engine uses `resource:verb` maps to `sm-${env}-tb-service-action-function-${resource}-${verb}`."
8780
+ "description": "Action identifier (e.g. `email:send`, `call:initiate`). Resolved by the same convention the workflow engine uses - `resource:verb` maps to `sm-${env}-tb-service-action-function-${resource}-${verb}`."
8781
8781
  },
8782
8782
  "input": {
8783
8783
  "type": "object",
@@ -9040,7 +9040,7 @@
9040
9040
  },
9041
9041
  "actionName": {
9042
9042
  "type": "string",
9043
- "description": "Action identifier (e.g. `email:send`, `call:initiate`). Resolved by the same convention the workflow engine uses `resource:verb` maps to `sm-${env}-tb-service-action-function-${resource}-${verb}`."
9043
+ "description": "Action identifier (e.g. `email:send`, `call:initiate`). Resolved by the same convention the workflow engine uses - `resource:verb` maps to `sm-${env}-tb-service-action-function-${resource}-${verb}`."
9044
9044
  },
9045
9045
  "input": {
9046
9046
  "type": "object",
@@ -9297,7 +9297,7 @@
9297
9297
  "candidate",
9298
9298
  "talent"
9299
9299
  ],
9300
- "description": "Submission type determines which workflow to trigger"
9300
+ "description": "Submission type - determines which workflow to trigger"
9301
9301
  },
9302
9302
  "status": {
9303
9303
  "type": "string",
@@ -9611,7 +9611,7 @@
9611
9611
  "candidate",
9612
9612
  "talent"
9613
9613
  ],
9614
- "description": "Submission type determines which workflow to trigger. Auto-derived from jobId if omitted."
9614
+ "description": "Submission type - determines which workflow to trigger. Auto-derived from jobId if omitted."
9615
9615
  },
9616
9616
  "referral": {
9617
9617
  "type": "object",
@@ -9798,7 +9798,7 @@
9798
9798
  "candidate",
9799
9799
  "talent"
9800
9800
  ],
9801
- "description": "Submission type determines which workflow to trigger"
9801
+ "description": "Submission type - determines which workflow to trigger"
9802
9802
  },
9803
9803
  "status": {
9804
9804
  "type": "string",
@@ -10814,14 +10814,81 @@
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
+ "filterToIdentifier": {
10871
+ "type": "string",
10872
+ "description": "Filter by callee's protocol-native handle (E.164 phone for PSTN). Indexed via ToIdentifierIndex GSI. Use for 'all calls to this number' views."
10873
+ },
10874
+ "filterConversationId": {
10875
+ "type": "string",
10876
+ "description": "Filter all calls in a conversation thread. Indexed via ConversationIdIndex GSI."
10877
+ },
10878
+ "filterIntent": {
10879
+ "type": "string",
10880
+ "description": "Filter by AI intent classifier output (inbound calls only). Post-filtered after pagination - acceptable while intent classification is small-scale.",
10881
+ "enum": [
10882
+ "brief_request",
10883
+ "sales_chat",
10884
+ "faq",
10885
+ "other"
10886
+ ]
10887
+ },
10888
+ "include": {
10889
+ "type": "string",
10890
+ "description": "JSON:API `?include=` sideloads. Comma-list of relationship\nslots; each resolved to a per-resource entry in the response\n`included[]` array. Eliminates N+1 lookups for avatars /\nnames. Allowed slots: conversation, candidate, talent, user,\nboeUser, job, brief, schedule. Each included resource carries\n`attributes.name` plus type-specific extras (`avatarUrl` +\n`isBoe` for users, `company` for candidate/talent, `title` +\n`shortCode` for job, `subject` + `type` for conversation,\n`fireAt` + `status` for schedule)."
10891
+ },
10825
10892
  "filterCreatedFrom": {
10826
10893
  "type": "string",
10827
10894
  "description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
@@ -10853,6 +10920,16 @@
10853
10920
  "pageBefore": {
10854
10921
  "type": "string",
10855
10922
  "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
10923
+ },
10924
+ "sort": {
10925
+ "type": "string",
10926
+ "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.",
10927
+ "enum": [
10928
+ "-created",
10929
+ "created",
10930
+ "-modified",
10931
+ "modified"
10932
+ ]
10856
10933
  }
10857
10934
  }
10858
10935
  },
@@ -11070,6 +11147,116 @@
11070
11147
  "type": "string",
11071
11148
  "description": "Unique short identifier (provider/lookup correlation)."
11072
11149
  },
11150
+ "transcriptSegments": {
11151
+ "type": "array",
11152
+ "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.",
11153
+ "items": {
11154
+ "type": "object",
11155
+ "properties": {
11156
+ "startMs": {
11157
+ "type": "integer",
11158
+ "description": "Offset from call start in milliseconds when the speaker began this turn."
11159
+ },
11160
+ "endMs": {
11161
+ "type": "integer",
11162
+ "description": "Offset from call start in milliseconds when the speaker finished this turn."
11163
+ },
11164
+ "speakerType": {
11165
+ "type": "string",
11166
+ "enum": [
11167
+ "ai",
11168
+ "human"
11169
+ ],
11170
+ "description": "Which side spoke this turn."
11171
+ },
11172
+ "speakerName": {
11173
+ "type": "string",
11174
+ "description": "Display name of the speaker at write time."
11175
+ },
11176
+ "text": {
11177
+ "type": "string",
11178
+ "description": "What the speaker said, in `languageCode`."
11179
+ }
11180
+ }
11181
+ }
11182
+ },
11183
+ "speakerStats": {
11184
+ "type": "array",
11185
+ "description": "Per-speaker talk statistics computed once on call finalization. Used by the timeline UI to show talk-time bars.",
11186
+ "items": {
11187
+ "type": "object",
11188
+ "properties": {
11189
+ "speakerType": {
11190
+ "type": "string",
11191
+ "enum": [
11192
+ "ai",
11193
+ "human"
11194
+ ]
11195
+ },
11196
+ "speakerName": {
11197
+ "type": "string"
11198
+ },
11199
+ "talkPercentageBp": {
11200
+ "type": "integer",
11201
+ "description": "Talk-time percentage in basis points (10000 = 100.00%). Integer to avoid float rounding mismatches across clients."
11202
+ }
11203
+ }
11204
+ }
11205
+ },
11206
+ "keyNotes": {
11207
+ "type": "array",
11208
+ "description": "AI-generated bullet points distilled from the transcript. In `languageCode` (NOT multilingual - single shape; FE renders as-is).",
11209
+ "items": {
11210
+ "type": "string"
11211
+ }
11212
+ },
11213
+ "topicsDiscussed": {
11214
+ "type": "array",
11215
+ "description": "Stable facet keys (e.g. `salary`, `experience`, `languagesSpoken`) covered in the call. FE renders via shared `callTopics` dictionary for human-readable labels.",
11216
+ "items": {
11217
+ "type": "string"
11218
+ }
11219
+ },
11220
+ "sentiment": {
11221
+ "type": "string",
11222
+ "enum": [
11223
+ "positive",
11224
+ "neutral",
11225
+ "negative",
11226
+ "mixed"
11227
+ ],
11228
+ "description": "AI-derived sentiment of the conversation as a whole."
11229
+ },
11230
+ "summaryGeneratedAt": {
11231
+ "type": "string",
11232
+ "description": "ISO 8601 timestamp when the AI summary pipeline (keyNotes + topicsDiscussed + sentiment + summary) finalized. Null until the post-call AI Step Function completes."
11233
+ },
11234
+ "folder": {
11235
+ "type": "string",
11236
+ "enum": [
11237
+ "drafts",
11238
+ "scheduled",
11239
+ "active",
11240
+ "incoming",
11241
+ "outgoing",
11242
+ "missed",
11243
+ "cancelled",
11244
+ "archived"
11245
+ ],
11246
+ "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."
11247
+ },
11248
+ "isLive": {
11249
+ "type": "boolean",
11250
+ "description": "Server-derived: true when status is in {queued, ringing, in-progress}. Drives the live indicator + polling decision in the UI."
11251
+ },
11252
+ "hasRecording": {
11253
+ "type": "boolean",
11254
+ "description": "Server-derived: true when recording.mixedMp3Url is present. Lets the list page show a play icon without sending the heavy `recording` block."
11255
+ },
11256
+ "hasTranscript": {
11257
+ "type": "boolean",
11258
+ "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."
11259
+ },
11073
11260
  "timestamps": {
11074
11261
  "title": "ResourceTimestampsSchema",
11075
11262
  "type": "object",
@@ -11273,7 +11460,12 @@
11273
11460
  "description": "Show Call",
11274
11461
  "inputSchema": {
11275
11462
  "type": "object",
11276
- "properties": {}
11463
+ "properties": {
11464
+ "include": {
11465
+ "type": "string",
11466
+ "description": "JSON:API `?include=` sideloads. Comma-list of relationship\nslots; each resolved entry is added to the response\n`included[]` array. Allowed slots: conversation, candidate,\ntalent, user, boeUser, job, brief, schedule."
11467
+ }
11468
+ }
11277
11469
  },
11278
11470
  "_meta": {
11279
11471
  "method": "GET",
@@ -11493,6 +11685,116 @@
11493
11685
  "type": "string",
11494
11686
  "description": "Unique short identifier (provider/lookup correlation)."
11495
11687
  },
11688
+ "transcriptSegments": {
11689
+ "type": "array",
11690
+ "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.",
11691
+ "items": {
11692
+ "type": "object",
11693
+ "properties": {
11694
+ "startMs": {
11695
+ "type": "integer",
11696
+ "description": "Offset from call start in milliseconds when the speaker began this turn."
11697
+ },
11698
+ "endMs": {
11699
+ "type": "integer",
11700
+ "description": "Offset from call start in milliseconds when the speaker finished this turn."
11701
+ },
11702
+ "speakerType": {
11703
+ "type": "string",
11704
+ "enum": [
11705
+ "ai",
11706
+ "human"
11707
+ ],
11708
+ "description": "Which side spoke this turn."
11709
+ },
11710
+ "speakerName": {
11711
+ "type": "string",
11712
+ "description": "Display name of the speaker at write time."
11713
+ },
11714
+ "text": {
11715
+ "type": "string",
11716
+ "description": "What the speaker said, in `languageCode`."
11717
+ }
11718
+ }
11719
+ }
11720
+ },
11721
+ "speakerStats": {
11722
+ "type": "array",
11723
+ "description": "Per-speaker talk statistics computed once on call finalization. Used by the timeline UI to show talk-time bars.",
11724
+ "items": {
11725
+ "type": "object",
11726
+ "properties": {
11727
+ "speakerType": {
11728
+ "type": "string",
11729
+ "enum": [
11730
+ "ai",
11731
+ "human"
11732
+ ]
11733
+ },
11734
+ "speakerName": {
11735
+ "type": "string"
11736
+ },
11737
+ "talkPercentageBp": {
11738
+ "type": "integer",
11739
+ "description": "Talk-time percentage in basis points (10000 = 100.00%). Integer to avoid float rounding mismatches across clients."
11740
+ }
11741
+ }
11742
+ }
11743
+ },
11744
+ "keyNotes": {
11745
+ "type": "array",
11746
+ "description": "AI-generated bullet points distilled from the transcript. In `languageCode` (NOT multilingual - single shape; FE renders as-is).",
11747
+ "items": {
11748
+ "type": "string"
11749
+ }
11750
+ },
11751
+ "topicsDiscussed": {
11752
+ "type": "array",
11753
+ "description": "Stable facet keys (e.g. `salary`, `experience`, `languagesSpoken`) covered in the call. FE renders via shared `callTopics` dictionary for human-readable labels.",
11754
+ "items": {
11755
+ "type": "string"
11756
+ }
11757
+ },
11758
+ "sentiment": {
11759
+ "type": "string",
11760
+ "enum": [
11761
+ "positive",
11762
+ "neutral",
11763
+ "negative",
11764
+ "mixed"
11765
+ ],
11766
+ "description": "AI-derived sentiment of the conversation as a whole."
11767
+ },
11768
+ "summaryGeneratedAt": {
11769
+ "type": "string",
11770
+ "description": "ISO 8601 timestamp when the AI summary pipeline (keyNotes + topicsDiscussed + sentiment + summary) finalized. Null until the post-call AI Step Function completes."
11771
+ },
11772
+ "folder": {
11773
+ "type": "string",
11774
+ "enum": [
11775
+ "drafts",
11776
+ "scheduled",
11777
+ "active",
11778
+ "incoming",
11779
+ "outgoing",
11780
+ "missed",
11781
+ "cancelled",
11782
+ "archived"
11783
+ ],
11784
+ "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."
11785
+ },
11786
+ "isLive": {
11787
+ "type": "boolean",
11788
+ "description": "Server-derived: true when status is in {queued, ringing, in-progress}. Drives the live indicator + polling decision in the UI."
11789
+ },
11790
+ "hasRecording": {
11791
+ "type": "boolean",
11792
+ "description": "Server-derived: true when recording.mixedMp3Url is present. Lets the list page show a play icon without sending the heavy `recording` block."
11793
+ },
11794
+ "hasTranscript": {
11795
+ "type": "boolean",
11796
+ "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."
11797
+ },
11496
11798
  "timestamps": {
11497
11799
  "title": "ResourceTimestampsSchema",
11498
11800
  "type": "object",
@@ -11545,6 +11847,255 @@
11545
11847
  "operationId": "callOptions"
11546
11848
  }
11547
11849
  },
11850
+ {
11851
+ "name": "list_comments",
11852
+ "description": "List Comments",
11853
+ "inputSchema": {
11854
+ "type": "object",
11855
+ "properties": {
11856
+ "filterTargetType": {
11857
+ "type": "string",
11858
+ "description": "Limit to comments on this resource type. Pair with filterTargetId.",
11859
+ "enum": [
11860
+ "calls",
11861
+ "chats",
11862
+ "emails",
11863
+ "candidates",
11864
+ "jobs",
11865
+ "talents",
11866
+ "briefs",
11867
+ "tasks"
11868
+ ]
11869
+ },
11870
+ "filterTargetId": {
11871
+ "type": "string",
11872
+ "description": "Limit to comments on this specific target id. Requires filterTargetType."
11873
+ },
11874
+ "filterAuthorId": {
11875
+ "type": "string",
11876
+ "description": "Limit to comments authored by this user. Indexed via AuthorIndex."
11877
+ },
11878
+ "filterIsResolved": {
11879
+ "type": "boolean",
11880
+ "description": "Filter by `isResolved` flag (true/false). Post-filtered after pagination - acceptable while resolution is rare."
11881
+ },
11882
+ "include": {
11883
+ "type": "string",
11884
+ "description": "JSON:API sideload. Currently supports `author` (resolves to the user row with name + avatarUrl + isBoe)."
11885
+ },
11886
+ "filterCreatedFrom": {
11887
+ "type": "string",
11888
+ "description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
11889
+ },
11890
+ "filterCreatedTo": {
11891
+ "type": "string",
11892
+ "description": "Filters results to include only those created up to the specified date and time. The value must be in ISO 8601 format."
11893
+ },
11894
+ "filterModifiedFrom": {
11895
+ "type": "string",
11896
+ "description": "Filters results to include only those modified from the specified date and time. The value must be in ISO 8601 format."
11897
+ },
11898
+ "filterModifiedTo": {
11899
+ "type": "string",
11900
+ "description": "Filters results to include only those modified up to the specified date and time. The value must be in ISO 8601 format."
11901
+ },
11902
+ "pageSize": {
11903
+ "type": "integer",
11904
+ "description": "Specifies the number of items to retrieve per page. The maximum value is 100."
11905
+ },
11906
+ "pageNumber": {
11907
+ "type": "integer",
11908
+ "description": "Specifies the page number to retrieve. Used for traditional pagination."
11909
+ },
11910
+ "pageAfter": {
11911
+ "type": "string",
11912
+ "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."
11913
+ },
11914
+ "pageBefore": {
11915
+ "type": "string",
11916
+ "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
11917
+ },
11918
+ "sort": {
11919
+ "type": "string",
11920
+ "description": "Sort order. Default `-created` (newest first).",
11921
+ "enum": [
11922
+ "-created",
11923
+ "created",
11924
+ "-modified",
11925
+ "modified"
11926
+ ]
11927
+ }
11928
+ }
11929
+ },
11930
+ "_meta": {
11931
+ "method": "GET",
11932
+ "path": "/v1/comments",
11933
+ "operationId": "listComments"
11934
+ }
11935
+ },
11936
+ {
11937
+ "name": "create_comment",
11938
+ "description": "Create Comment",
11939
+ "inputSchema": {
11940
+ "title": "CreateCommentRequestSchema",
11941
+ "type": "object",
11942
+ "properties": {
11943
+ "data": {
11944
+ "type": "object",
11945
+ "required": [
11946
+ "type",
11947
+ "attributes"
11948
+ ],
11949
+ "properties": {
11950
+ "type": {
11951
+ "type": "string",
11952
+ "enum": [
11953
+ "comments"
11954
+ ]
11955
+ },
11956
+ "attributes": {
11957
+ "type": "object",
11958
+ "required": [
11959
+ "body",
11960
+ "targetType",
11961
+ "targetId"
11962
+ ],
11963
+ "properties": {
11964
+ "body": {
11965
+ "type": "string",
11966
+ "maxLength": 5000
11967
+ },
11968
+ "targetType": {
11969
+ "type": "string",
11970
+ "enum": [
11971
+ "calls",
11972
+ "chats",
11973
+ "emails",
11974
+ "candidates",
11975
+ "jobs",
11976
+ "talents",
11977
+ "briefs",
11978
+ "tasks"
11979
+ ]
11980
+ },
11981
+ "targetId": {
11982
+ "type": "string"
11983
+ },
11984
+ "parentCommentId": {
11985
+ "type": "string"
11986
+ },
11987
+ "mentionedUserIds": {
11988
+ "type": "array",
11989
+ "items": {
11990
+ "type": "string"
11991
+ }
11992
+ },
11993
+ "isResolved": {
11994
+ "type": "boolean"
11995
+ }
11996
+ }
11997
+ }
11998
+ }
11999
+ }
12000
+ }
12001
+ },
12002
+ "_meta": {
12003
+ "method": "POST",
12004
+ "path": "/v1/comments",
12005
+ "operationId": "createComment"
12006
+ }
12007
+ },
12008
+ {
12009
+ "name": "show_comment",
12010
+ "description": "Show Comment",
12011
+ "inputSchema": {
12012
+ "type": "object",
12013
+ "properties": {
12014
+ "include": {
12015
+ "type": "string",
12016
+ "description": "JSON:API sideload. `author` resolves the user row."
12017
+ }
12018
+ }
12019
+ },
12020
+ "_meta": {
12021
+ "method": "GET",
12022
+ "path": "/v1/comments/{commentId}",
12023
+ "operationId": "showComment"
12024
+ }
12025
+ },
12026
+ {
12027
+ "name": "update_comment",
12028
+ "description": "Update Comment",
12029
+ "inputSchema": {
12030
+ "title": "UpdateCommentRequestSchema",
12031
+ "type": "object",
12032
+ "properties": {
12033
+ "data": {
12034
+ "type": "object",
12035
+ "required": [
12036
+ "type"
12037
+ ],
12038
+ "properties": {
12039
+ "type": {
12040
+ "type": "string",
12041
+ "enum": [
12042
+ "comments"
12043
+ ]
12044
+ },
12045
+ "id": {
12046
+ "type": "string"
12047
+ },
12048
+ "attributes": {
12049
+ "type": "object",
12050
+ "description": "Patchable fields. Only `body`, `isResolved`, and `mentionedUserIds` are editable. Edit by author OR tenant admin/owner; others get 403.",
12051
+ "properties": {
12052
+ "body": {
12053
+ "type": "string",
12054
+ "maxLength": 5000
12055
+ },
12056
+ "isResolved": {
12057
+ "type": "boolean"
12058
+ },
12059
+ "mentionedUserIds": {
12060
+ "type": "array",
12061
+ "items": {
12062
+ "type": "string"
12063
+ }
12064
+ }
12065
+ }
12066
+ }
12067
+ }
12068
+ }
12069
+ }
12070
+ },
12071
+ "_meta": {
12072
+ "method": "PATCH",
12073
+ "path": "/v1/comments/{commentId}",
12074
+ "operationId": "updateComment"
12075
+ }
12076
+ },
12077
+ {
12078
+ "name": "delete_comment",
12079
+ "description": "Delete Comment",
12080
+ "inputSchema": {
12081
+ "type": "object",
12082
+ "properties": {
12083
+ "permanentDelete": {
12084
+ "type": "string",
12085
+ "description": "Set to `true` for hard-delete. Default is soft-delete (status=archived).",
12086
+ "enum": [
12087
+ "true",
12088
+ "false"
12089
+ ]
12090
+ }
12091
+ }
12092
+ },
12093
+ "_meta": {
12094
+ "method": "DELETE",
12095
+ "path": "/v1/comments/{commentId}",
12096
+ "operationId": "deleteComment"
12097
+ }
12098
+ },
11548
12099
  {
11549
12100
  "name": "list_chats",
11550
12101
  "description": "List Chats",
@@ -12776,6 +13327,9 @@
12776
13327
  "description": "Only return states for this resource type.",
12777
13328
  "enum": [
12778
13329
  "emails",
13330
+ "chats",
13331
+ "calls",
13332
+ "comments",
12779
13333
  "candidates",
12780
13334
  "conversations",
12781
13335
  "jobs",
@@ -13097,10 +13651,12 @@
13097
13651
  "properties": {
13098
13652
  "filterResourceType": {
13099
13653
  "type": "string",
13100
- "description": "Only return aggregates for this resource type (e.g. emails, chats).",
13654
+ "description": "Only return aggregates for this resource type (e.g. emails, chats, calls, comments).",
13101
13655
  "enum": [
13102
13656
  "emails",
13103
13657
  "chats",
13658
+ "calls",
13659
+ "comments",
13104
13660
  "candidates",
13105
13661
  "conversations",
13106
13662
  "jobs",
@@ -15946,7 +16502,7 @@
15946
16502
  },
15947
16503
  "filterCategory": {
15948
16504
  "type": "string",
15949
- "description": "Filter by category (sourcing, screening, assessment, onboarding, operational, general). Uses CategoryIndex GSI efficient at scale.",
16505
+ "description": "Filter by category (sourcing, screening, assessment, onboarding, operational, general). Uses CategoryIndex GSI - efficient at scale.",
15950
16506
  "enum": [
15951
16507
  "sourcing",
15952
16508
  "screening",
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.29",
4
4
  "description": "MCP tool definitions for SmartyTalent API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",