@smartytalent/mcp-tools 0.9.8 → 0.9.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 +295 -16
  2. package/package.json +1 -1
package/dist/tools.json CHANGED
@@ -362,7 +362,7 @@
362
362
  },
363
363
  "limits": {
364
364
  "type": "object",
365
- "description": "Anti-abuse limits for the inbound-call channel (inbound-call arc). Declared ahead of enforcement so generated clients carry the key (the typed settings schema is a whitelist - undeclared keys are silently dropped by the SDK). Sysowner-only on PATCH (cost-protection config, the boeMetering precedent); values are inert until the P4 limiter ships.",
365
+ "description": "Anti-abuse limits for the inbound channels (inbound-call arc; email-intake daily budgets since EM-P1). Declared ahead of enforcement so generated clients carry the key (the typed settings schema is a whitelist - undeclared keys are silently dropped by the SDK). Sysowner-only on PATCH (cost-protection config, the boeMetering precedent); the call values are inert until the P4 limiter ships, the emailIntake* budgets are enforced by the inbound email Lambda.",
366
366
  "properties": {
367
367
  "callsPerCliHour": {
368
368
  "type": "integer",
@@ -397,6 +397,18 @@
397
397
  "type": "integer",
398
398
  "minimum": 1,
399
399
  "description": "Daily outbound-SMS budget for the tenant across the inbound-call channel (2b rails; container default applies when unset)"
400
+ },
401
+ "emailIntakeRepliesDay": {
402
+ "type": "integer",
403
+ "minimum": 1,
404
+ "default": 200,
405
+ "description": "Budget of automated intake mails the email channel may handle on the tenant's behalf (EM-P1 guard 3, every tenant from day one - no opt-in flag). Enforced over a ROLLING 24 h window, not a UTC day - the door reopens 24 h after the oldest counted mail, not at midnight. Counted from `intake_admitted` signals (one per mail admitted to the classifier, so silent branches consume budget too); over budget = silence + `rejected_rate_limit` signal + one Google Chat alarm per 24 h. Code default applies when unset."
406
+ },
407
+ "emailIntakeSubmissionsDay": {
408
+ "type": "integer",
409
+ "minimum": 1,
410
+ "default": 50,
411
+ "description": "Budget of submissions the email intake may create for the tenant (EM-P1 guard 3). Enforced over a ROLLING 24 h window, not a UTC day. Counted from `intake_submitted` signals; over budget = silence + `rejected_rate_limit` signal. Code default applies when unset."
400
412
  }
401
413
  }
402
414
  }
@@ -887,7 +899,7 @@
887
899
  },
888
900
  "limits": {
889
901
  "type": "object",
890
- "description": "Anti-abuse limits for the inbound-call channel (inbound-call arc). Declared ahead of enforcement so generated clients carry the key (the typed settings schema is a whitelist - undeclared keys are silently dropped by the SDK). Sysowner-only on PATCH (cost-protection config, the boeMetering precedent); values are inert until the P4 limiter ships.",
902
+ "description": "Anti-abuse limits for the inbound channels (inbound-call arc; email-intake daily budgets since EM-P1). Declared ahead of enforcement so generated clients carry the key (the typed settings schema is a whitelist - undeclared keys are silently dropped by the SDK). Sysowner-only on PATCH (cost-protection config, the boeMetering precedent); the call values are inert until the P4 limiter ships, the emailIntake* budgets are enforced by the inbound email Lambda.",
891
903
  "properties": {
892
904
  "callsPerCliHour": {
893
905
  "type": "integer",
@@ -922,6 +934,18 @@
922
934
  "type": "integer",
923
935
  "minimum": 1,
924
936
  "description": "Daily outbound-SMS budget for the tenant across the inbound-call channel (2b rails; container default applies when unset)"
937
+ },
938
+ "emailIntakeRepliesDay": {
939
+ "type": "integer",
940
+ "minimum": 1,
941
+ "default": 200,
942
+ "description": "Budget of automated intake mails the email channel may handle on the tenant's behalf (EM-P1 guard 3, every tenant from day one - no opt-in flag). Enforced over a ROLLING 24 h window, not a UTC day - the door reopens 24 h after the oldest counted mail, not at midnight. Counted from `intake_admitted` signals (one per mail admitted to the classifier, so silent branches consume budget too); over budget = silence + `rejected_rate_limit` signal + one Google Chat alarm per 24 h. Code default applies when unset."
943
+ },
944
+ "emailIntakeSubmissionsDay": {
945
+ "type": "integer",
946
+ "minimum": 1,
947
+ "default": 50,
948
+ "description": "Budget of submissions the email intake may create for the tenant (EM-P1 guard 3). Enforced over a ROLLING 24 h window, not a UTC day. Counted from `intake_submitted` signals; over budget = silence + `rejected_rate_limit` signal. Code default applies when unset."
925
949
  }
926
950
  }
927
951
  }
@@ -4742,6 +4766,10 @@
4742
4766
  "title"
4743
4767
  ],
4744
4768
  "properties": {
4769
+ "ownerId": {
4770
+ "type": "string",
4771
+ "description": "userId of the job owner (set server-side at create; the Boe user on workflow-built jobs). Read-only."
4772
+ },
4745
4773
  "title": {
4746
4774
  "title": "JobAttributesTitleSchema",
4747
4775
  "description": "The job title/position. Language-keyed object where keys are locale codes (e.g. en-US, pl-PL).",
@@ -5574,6 +5602,10 @@
5574
5602
  "title"
5575
5603
  ],
5576
5604
  "properties": {
5605
+ "ownerId": {
5606
+ "type": "string",
5607
+ "description": "userId of the job owner (set server-side at create; the Boe user on workflow-built jobs). Read-only."
5608
+ },
5577
5609
  "title": {
5578
5610
  "title": "JobAttributesTitleSchema",
5579
5611
  "description": "The job title/position. Language-keyed object where keys are locale codes (e.g. en-US, pl-PL).",
@@ -8047,6 +8079,10 @@
8047
8079
  "type": "boolean",
8048
8080
  "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."
8049
8081
  },
8082
+ "filterLabelId": {
8083
+ "type": "string",
8084
+ "description": "Return only emails carrying this label. Server-side filter on the denormalised `labelIds` of relationships.labels. Mutually exclusive with the other filters - one filter at a time. Results are sorted by created desc."
8085
+ },
8050
8086
  "sort": {
8051
8087
  "type": "string",
8052
8088
  "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.",
@@ -8215,7 +8251,7 @@
8215
8251
  },
8216
8252
  "type": {
8217
8253
  "type": "string",
8218
- "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`."
8254
+ "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`, `briefs`. Calendar invites use `emails` - the mail itself owns the .ics."
8219
8255
  },
8220
8256
  "fileId": {
8221
8257
  "type": "string",
@@ -8275,7 +8311,8 @@
8275
8311
  },
8276
8312
  "meta": {
8277
8313
  "type": "object",
8278
- "additionalProperties": true
8314
+ "additionalProperties": true,
8315
+ "description": "Not populated on the wire - the email meta rides at the resource level (data.meta, see EmailResourceSchema.meta). Kept for client compatibility only."
8279
8316
  },
8280
8317
  "timestamps": {
8281
8318
  "title": "ResourceTimestampsSchema",
@@ -8341,6 +8378,28 @@
8341
8378
  }
8342
8379
  }
8343
8380
  },
8381
+ "labels": {
8382
+ "title": "EmailRelationshipsLabelsSchema",
8383
+ "description": "Labels (label service definitions) attached to this email. To-many; wire contract declared ahead of use (D-D, 2026-08-31) - always empty in EM-P1, the email-labels package stamps system labels later. Per-user manual labelling stays in /v1/states flags.labels and is NOT mirrored here.",
8384
+ "type": "object",
8385
+ "properties": {
8386
+ "data": {
8387
+ "type": "array",
8388
+ "items": {
8389
+ "title": "EmailRelationshipsLabelsDataSchema",
8390
+ "type": "object",
8391
+ "properties": {
8392
+ "type": {
8393
+ "type": "string"
8394
+ },
8395
+ "id": {
8396
+ "type": "string"
8397
+ }
8398
+ }
8399
+ }
8400
+ }
8401
+ }
8402
+ },
8344
8403
  "candidate": {
8345
8404
  "title": "EmailRelationshipsCandidateSchema",
8346
8405
  "type": "object",
@@ -8359,6 +8418,25 @@
8359
8418
  }
8360
8419
  }
8361
8420
  },
8421
+ "talent": {
8422
+ "title": "EmailRelationshipsTalentSchema",
8423
+ "description": "The Talent (durable person) this email belongs to. To-one, nullable. Stamped at create by email:persist_inbound / the inbound email Lambda when the sender resolved to a known talent or candidate; rows written before the talent existed (a guest's application mail, the consent ask, the YES) stay unlinked - the conversation owns the linkage (SPEC_TALENT_COMMS_OWNERSHIP). No filterTalent on listEmails yet: list a talent's mail through its conversations.",
8424
+ "type": "object",
8425
+ "properties": {
8426
+ "data": {
8427
+ "title": "EmailRelationshipsTalentDataSchema",
8428
+ "type": "object",
8429
+ "properties": {
8430
+ "type": {
8431
+ "type": "string"
8432
+ },
8433
+ "id": {
8434
+ "type": "string"
8435
+ }
8436
+ }
8437
+ }
8438
+ }
8439
+ },
8362
8440
  "conversations": {
8363
8441
  "title": "EmailRelationshipsConversationsSchema",
8364
8442
  "type": "object",
@@ -8679,7 +8757,7 @@
8679
8757
  },
8680
8758
  "type": {
8681
8759
  "type": "string",
8682
- "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`."
8760
+ "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`, `briefs`. Calendar invites use `emails` - the mail itself owns the .ics."
8683
8761
  },
8684
8762
  "fileId": {
8685
8763
  "type": "string",
@@ -8739,7 +8817,8 @@
8739
8817
  },
8740
8818
  "meta": {
8741
8819
  "type": "object",
8742
- "additionalProperties": true
8820
+ "additionalProperties": true,
8821
+ "description": "Not populated on the wire - the email meta rides at the resource level (data.meta, see EmailResourceSchema.meta). Kept for client compatibility only."
8743
8822
  },
8744
8823
  "timestamps": {
8745
8824
  "title": "ResourceTimestampsSchema",
@@ -12467,7 +12546,7 @@
12467
12546
  },
12468
12547
  "meta": {
12469
12548
  "type": "object",
12470
- "description": "Free-form metadata. meta.external carries ATS import correlation ({source, jobShortCode, talentShortCode, applicationShortCode, ttl}); meta.userId is stamped server-side on create. CREATE-ONLY today: the update path ignores meta."
12549
+ "description": "Not populated on the wire - the submission meta rides at the resource level (data.meta, see SubmissionResourceSchema.meta). Kept for client compatibility only."
12471
12550
  },
12472
12551
  "timestamps": {
12473
12552
  "title": "ResourceTimestampsSchema",
@@ -12975,7 +13054,7 @@
12975
13054
  },
12976
13055
  "meta": {
12977
13056
  "type": "object",
12978
- "description": "Free-form metadata. meta.external carries ATS import correlation ({source, jobShortCode, talentShortCode, applicationShortCode, ttl}); meta.userId is stamped server-side on create. CREATE-ONLY today: the update path ignores meta."
13057
+ "description": "Not populated on the wire - the submission meta rides at the resource level (data.meta, see SubmissionResourceSchema.meta). Kept for client compatibility only."
12979
13058
  },
12980
13059
  "timestamps": {
12981
13060
  "title": "ResourceTimestampsSchema",
@@ -18007,13 +18086,18 @@
18007
18086
  "type": "string",
18008
18087
  "enum": [
18009
18088
  "tenant",
18010
- "user"
18089
+ "user",
18090
+ "system"
18011
18091
  ],
18012
- "description": "tenant = visible to every user in the tenant; user = visible only to the owner."
18092
+ "description": "tenant = visible to every user in the tenant; user = visible only to the owner; system = seeded and stamped by the platform; read-only (create/update/delete via the API are rejected)."
18093
+ },
18094
+ "systemKey": {
18095
+ "type": "string",
18096
+ "description": "Present only on scope=system rows: stable machine key naming the platform intent. `application` = inbound e-mail application, `talent_pool` = talent-pool opt-in (application without a job), `status` = status inquiry about an existing application, `withdrawal` = withdrawal / opt-out acknowledgement. Null on tenant/user labels. Filter or branch on this key, never on the localised name."
18013
18097
  },
18014
18098
  "ownerId": {
18015
18099
  "type": "string",
18016
- "description": "Set server-side from the caller. Tenant-scope: tenantId. User-scope: the authenticated user's full userId."
18100
+ "description": "Set server-side from the caller. Tenant-scope: tenantId. User-scope: the authenticated user's full userId. System-scope: the tenant base id, stamped by the seeder."
18017
18101
  },
18018
18102
  "resourceTypes": {
18019
18103
  "type": "array",
@@ -18129,13 +18213,18 @@
18129
18213
  "type": "string",
18130
18214
  "enum": [
18131
18215
  "tenant",
18132
- "user"
18216
+ "user",
18217
+ "system"
18133
18218
  ],
18134
- "description": "tenant = visible to every user in the tenant; user = visible only to the owner."
18219
+ "description": "tenant = visible to every user in the tenant; user = visible only to the owner; system = seeded and stamped by the platform; read-only (create/update/delete via the API are rejected)."
18220
+ },
18221
+ "systemKey": {
18222
+ "type": "string",
18223
+ "description": "Present only on scope=system rows: stable machine key naming the platform intent. `application` = inbound e-mail application, `talent_pool` = talent-pool opt-in (application without a job), `status` = status inquiry about an existing application, `withdrawal` = withdrawal / opt-out acknowledgement. Null on tenant/user labels. Filter or branch on this key, never on the localised name."
18135
18224
  },
18136
18225
  "ownerId": {
18137
18226
  "type": "string",
18138
- "description": "Set server-side from the caller. Tenant-scope: tenantId. User-scope: the authenticated user's full userId."
18227
+ "description": "Set server-side from the caller. Tenant-scope: tenantId. User-scope: the authenticated user's full userId. System-scope: the tenant base id, stamped by the seeder."
18139
18228
  },
18140
18229
  "resourceTypes": {
18141
18230
  "type": "array",
@@ -20536,7 +20625,8 @@
20536
20625
  },
20537
20626
  "meta": {
20538
20627
  "type": "object",
20539
- "additionalProperties": true
20628
+ "additionalProperties": true,
20629
+ "description": "Not populated on the wire - the conversation meta rides at the resource level (data.meta, see ConversationResourceSchema.meta). Kept for client compatibility only."
20540
20630
  },
20541
20631
  "timestamps": {
20542
20632
  "title": "ResourceTimestampsSchema",
@@ -20660,6 +20750,28 @@
20660
20750
  }
20661
20751
  }
20662
20752
  },
20753
+ "labels": {
20754
+ "title": "ConversationRelationshipsLabelsSchema",
20755
+ "description": "Labels (label service definitions) attached to this conversation. To-many; wire contract declared ahead of use (D-D, 2026-08-31) - always empty in EM-P1, the email-labels package stamps system labels later. Not PATCH-mergeable (the conversation update door merges to-one keys only); per-user manual labelling stays in /v1/states flags.labels.",
20756
+ "type": "object",
20757
+ "properties": {
20758
+ "data": {
20759
+ "type": "array",
20760
+ "items": {
20761
+ "title": "ConversationRelationshipsLabelsDataSchema",
20762
+ "type": "object",
20763
+ "properties": {
20764
+ "type": {
20765
+ "type": "string"
20766
+ },
20767
+ "id": {
20768
+ "type": "string"
20769
+ }
20770
+ }
20771
+ }
20772
+ }
20773
+ }
20774
+ },
20663
20775
  "talent": {
20664
20776
  "title": "ConversationRelationshipsTalentSchema",
20665
20777
  "type": "object",
@@ -20817,7 +20929,8 @@
20817
20929
  },
20818
20930
  "meta": {
20819
20931
  "type": "object",
20820
- "additionalProperties": true
20932
+ "additionalProperties": true,
20933
+ "description": "Not populated on the wire - the conversation meta rides at the resource level (data.meta, see ConversationResourceSchema.meta). Kept for client compatibility only."
20821
20934
  },
20822
20935
  "timestamps": {
20823
20936
  "title": "ResourceTimestampsSchema",
@@ -20834,6 +20947,172 @@
20834
20947
  }
20835
20948
  }
20836
20949
  }
20950
+ },
20951
+ "relationships": {
20952
+ "title": "ConversationRelationshipsSchema",
20953
+ "type": "object",
20954
+ "properties": {
20955
+ "candidate": {
20956
+ "title": "ConversationRelationshipsCandidateSchema",
20957
+ "type": "object",
20958
+ "properties": {
20959
+ "data": {
20960
+ "title": "ConversationRelationshipsCandidateDataSchema",
20961
+ "type": "object",
20962
+ "properties": {
20963
+ "type": {
20964
+ "type": "string"
20965
+ },
20966
+ "id": {
20967
+ "type": "string"
20968
+ }
20969
+ }
20970
+ }
20971
+ }
20972
+ },
20973
+ "emails": {
20974
+ "title": "ConversationRelationshipsEmailsSchema",
20975
+ "type": "object",
20976
+ "properties": {
20977
+ "data": {
20978
+ "type": "array",
20979
+ "items": {
20980
+ "title": "ConversationRelationshipsEmailsDataSchema",
20981
+ "type": "object",
20982
+ "properties": {
20983
+ "type": {
20984
+ "type": "string"
20985
+ },
20986
+ "id": {
20987
+ "type": "string"
20988
+ }
20989
+ }
20990
+ }
20991
+ }
20992
+ }
20993
+ },
20994
+ "chats": {
20995
+ "title": "ConversationRelationshipsChatsSchema",
20996
+ "type": "object",
20997
+ "properties": {
20998
+ "data": {
20999
+ "type": "array",
21000
+ "items": {
21001
+ "title": "ConversationRelationshipsChatsDataSchema",
21002
+ "type": "object",
21003
+ "properties": {
21004
+ "type": {
21005
+ "type": "string"
21006
+ },
21007
+ "id": {
21008
+ "type": "string"
21009
+ }
21010
+ }
21011
+ }
21012
+ }
21013
+ }
21014
+ },
21015
+ "calls": {
21016
+ "title": "ConversationRelationshipsCallsSchema",
21017
+ "type": "object",
21018
+ "properties": {
21019
+ "data": {
21020
+ "type": "array",
21021
+ "items": {
21022
+ "title": "ConversationRelationshipsCallsDataSchema",
21023
+ "type": "object",
21024
+ "properties": {
21025
+ "type": {
21026
+ "type": "string"
21027
+ },
21028
+ "id": {
21029
+ "type": "string"
21030
+ }
21031
+ }
21032
+ }
21033
+ }
21034
+ }
21035
+ },
21036
+ "meetings": {
21037
+ "title": "ConversationRelationshipsMeetingsSchema",
21038
+ "type": "object",
21039
+ "properties": {
21040
+ "data": {
21041
+ "type": "array",
21042
+ "items": {
21043
+ "title": "ConversationRelationshipsMeetingsDataSchema",
21044
+ "type": "object",
21045
+ "properties": {
21046
+ "type": {
21047
+ "type": "string"
21048
+ },
21049
+ "id": {
21050
+ "type": "string"
21051
+ }
21052
+ }
21053
+ }
21054
+ }
21055
+ }
21056
+ },
21057
+ "labels": {
21058
+ "title": "ConversationRelationshipsLabelsSchema",
21059
+ "description": "Labels (label service definitions) attached to this conversation. To-many; wire contract declared ahead of use (D-D, 2026-08-31) - always empty in EM-P1, the email-labels package stamps system labels later. Not PATCH-mergeable (the conversation update door merges to-one keys only); per-user manual labelling stays in /v1/states flags.labels.",
21060
+ "type": "object",
21061
+ "properties": {
21062
+ "data": {
21063
+ "type": "array",
21064
+ "items": {
21065
+ "title": "ConversationRelationshipsLabelsDataSchema",
21066
+ "type": "object",
21067
+ "properties": {
21068
+ "type": {
21069
+ "type": "string"
21070
+ },
21071
+ "id": {
21072
+ "type": "string"
21073
+ }
21074
+ }
21075
+ }
21076
+ }
21077
+ }
21078
+ },
21079
+ "talent": {
21080
+ "title": "ConversationRelationshipsTalentSchema",
21081
+ "type": "object",
21082
+ "properties": {
21083
+ "data": {
21084
+ "title": "ConversationRelationshipsTalentDataSchema",
21085
+ "type": "object",
21086
+ "properties": {
21087
+ "type": {
21088
+ "type": "string"
21089
+ },
21090
+ "id": {
21091
+ "type": "string"
21092
+ }
21093
+ }
21094
+ }
21095
+ }
21096
+ },
21097
+ "job": {
21098
+ "title": "ConversationRelationshipsJobSchema",
21099
+ "type": "object",
21100
+ "properties": {
21101
+ "data": {
21102
+ "title": "ConversationRelationshipsJobDataSchema",
21103
+ "type": "object",
21104
+ "properties": {
21105
+ "type": {
21106
+ "type": "string"
21107
+ },
21108
+ "id": {
21109
+ "type": "string"
21110
+ }
21111
+ }
21112
+ }
21113
+ }
21114
+ }
21115
+ }
20837
21116
  }
20838
21117
  }
20839
21118
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartytalent/mcp-tools",
3
- "version": "0.9.8",
3
+ "version": "0.9.10",
4
4
  "description": "MCP tool definitions for SmartyTalent API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",