@smartytalent/mcp-tools 0.9.8 → 0.9.9
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.
- package/dist/tools.json +269 -6
- 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
|
|
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
|
|
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).",
|
|
@@ -8341,6 +8373,28 @@
|
|
|
8341
8373
|
}
|
|
8342
8374
|
}
|
|
8343
8375
|
},
|
|
8376
|
+
"labels": {
|
|
8377
|
+
"title": "EmailRelationshipsLabelsSchema",
|
|
8378
|
+
"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.",
|
|
8379
|
+
"type": "object",
|
|
8380
|
+
"properties": {
|
|
8381
|
+
"data": {
|
|
8382
|
+
"type": "array",
|
|
8383
|
+
"items": {
|
|
8384
|
+
"title": "EmailRelationshipsLabelsDataSchema",
|
|
8385
|
+
"type": "object",
|
|
8386
|
+
"properties": {
|
|
8387
|
+
"type": {
|
|
8388
|
+
"type": "string"
|
|
8389
|
+
},
|
|
8390
|
+
"id": {
|
|
8391
|
+
"type": "string"
|
|
8392
|
+
}
|
|
8393
|
+
}
|
|
8394
|
+
}
|
|
8395
|
+
}
|
|
8396
|
+
}
|
|
8397
|
+
},
|
|
8344
8398
|
"candidate": {
|
|
8345
8399
|
"title": "EmailRelationshipsCandidateSchema",
|
|
8346
8400
|
"type": "object",
|
|
@@ -8359,6 +8413,25 @@
|
|
|
8359
8413
|
}
|
|
8360
8414
|
}
|
|
8361
8415
|
},
|
|
8416
|
+
"talent": {
|
|
8417
|
+
"title": "EmailRelationshipsTalentSchema",
|
|
8418
|
+
"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.",
|
|
8419
|
+
"type": "object",
|
|
8420
|
+
"properties": {
|
|
8421
|
+
"data": {
|
|
8422
|
+
"title": "EmailRelationshipsTalentDataSchema",
|
|
8423
|
+
"type": "object",
|
|
8424
|
+
"properties": {
|
|
8425
|
+
"type": {
|
|
8426
|
+
"type": "string"
|
|
8427
|
+
},
|
|
8428
|
+
"id": {
|
|
8429
|
+
"type": "string"
|
|
8430
|
+
}
|
|
8431
|
+
}
|
|
8432
|
+
}
|
|
8433
|
+
}
|
|
8434
|
+
},
|
|
8362
8435
|
"conversations": {
|
|
8363
8436
|
"title": "EmailRelationshipsConversationsSchema",
|
|
8364
8437
|
"type": "object",
|
|
@@ -12467,7 +12540,7 @@
|
|
|
12467
12540
|
},
|
|
12468
12541
|
"meta": {
|
|
12469
12542
|
"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."
|
|
12543
|
+
"description": "Free-form metadata. meta.external carries ATS import correlation ({source, jobShortCode, talentShortCode, applicationShortCode, ttl}); meta.email carries email-intake correlation on channel='email' submissions ({conversationId, emailId (the application mail), consentEmailId (the YES), messageId, threadRef 'SMT-<consentAskedEmailId>', consentVerbatim (capped), consentAt, askEmailId, askTextVersion, yesS3Key, senderAuth}) - the consent proof, kept for the life of the row (no TTL); meta.userId is stamped server-side on create. CREATE-ONLY today: the update path ignores meta."
|
|
12471
12544
|
},
|
|
12472
12545
|
"timestamps": {
|
|
12473
12546
|
"title": "ResourceTimestampsSchema",
|
|
@@ -12975,7 +13048,7 @@
|
|
|
12975
13048
|
},
|
|
12976
13049
|
"meta": {
|
|
12977
13050
|
"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."
|
|
13051
|
+
"description": "Free-form metadata. meta.external carries ATS import correlation ({source, jobShortCode, talentShortCode, applicationShortCode, ttl}); meta.email carries email-intake correlation on channel='email' submissions ({conversationId, emailId (the application mail), consentEmailId (the YES), messageId, threadRef 'SMT-<consentAskedEmailId>', consentVerbatim (capped), consentAt, askEmailId, askTextVersion, yesS3Key, senderAuth}) - the consent proof, kept for the life of the row (no TTL); meta.userId is stamped server-side on create. CREATE-ONLY today: the update path ignores meta."
|
|
12979
13052
|
},
|
|
12980
13053
|
"timestamps": {
|
|
12981
13054
|
"title": "ResourceTimestampsSchema",
|
|
@@ -20536,7 +20609,8 @@
|
|
|
20536
20609
|
},
|
|
20537
20610
|
"meta": {
|
|
20538
20611
|
"type": "object",
|
|
20539
|
-
"additionalProperties": true
|
|
20612
|
+
"additionalProperties": true,
|
|
20613
|
+
"description": "Free-form metadata. meta.reference is the RFC 5322 Message-ID chain of the thread (appended by the conversation eventbus on email events; the outbound sender reads it for In-Reply-To/References). meta.intake marks an email-intake thread and is absent on every other conversation: {version, kind: job_application|talent_pool, status: awaiting_consent|submitted|incomplete|declined|expired, jobId|null, jobShort, jobTitle, formId, language, senderEmail, applicationEmailId, consentAskedEmailId|null, consentEmailId|null, submissionId|null, submittedAt|null, expiresAt, missingFields[] (incomplete), askTextVersion, consentQuestion, draft {answers, wire, cv {s3Key, filename, contentType, size}} (awaiting_consent only)} - written only by the inbound email Lambda; workflows never touch it. talentId/candidateId/jobId are NOT meta or attributes on the wire - read relationships.talent/candidate/job."
|
|
20540
20614
|
},
|
|
20541
20615
|
"timestamps": {
|
|
20542
20616
|
"title": "ResourceTimestampsSchema",
|
|
@@ -20660,6 +20734,28 @@
|
|
|
20660
20734
|
}
|
|
20661
20735
|
}
|
|
20662
20736
|
},
|
|
20737
|
+
"labels": {
|
|
20738
|
+
"title": "ConversationRelationshipsLabelsSchema",
|
|
20739
|
+
"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.",
|
|
20740
|
+
"type": "object",
|
|
20741
|
+
"properties": {
|
|
20742
|
+
"data": {
|
|
20743
|
+
"type": "array",
|
|
20744
|
+
"items": {
|
|
20745
|
+
"title": "ConversationRelationshipsLabelsDataSchema",
|
|
20746
|
+
"type": "object",
|
|
20747
|
+
"properties": {
|
|
20748
|
+
"type": {
|
|
20749
|
+
"type": "string"
|
|
20750
|
+
},
|
|
20751
|
+
"id": {
|
|
20752
|
+
"type": "string"
|
|
20753
|
+
}
|
|
20754
|
+
}
|
|
20755
|
+
}
|
|
20756
|
+
}
|
|
20757
|
+
}
|
|
20758
|
+
},
|
|
20663
20759
|
"talent": {
|
|
20664
20760
|
"title": "ConversationRelationshipsTalentSchema",
|
|
20665
20761
|
"type": "object",
|
|
@@ -20817,7 +20913,8 @@
|
|
|
20817
20913
|
},
|
|
20818
20914
|
"meta": {
|
|
20819
20915
|
"type": "object",
|
|
20820
|
-
"additionalProperties": true
|
|
20916
|
+
"additionalProperties": true,
|
|
20917
|
+
"description": "Free-form metadata. meta.reference is the RFC 5322 Message-ID chain of the thread (appended by the conversation eventbus on email events; the outbound sender reads it for In-Reply-To/References). meta.intake marks an email-intake thread and is absent on every other conversation: {version, kind: job_application|talent_pool, status: awaiting_consent|submitted|incomplete|declined|expired, jobId|null, jobShort, jobTitle, formId, language, senderEmail, applicationEmailId, consentAskedEmailId|null, consentEmailId|null, submissionId|null, submittedAt|null, expiresAt, missingFields[] (incomplete), askTextVersion, consentQuestion, draft {answers, wire, cv {s3Key, filename, contentType, size}} (awaiting_consent only)} - written only by the inbound email Lambda; workflows never touch it. talentId/candidateId/jobId are NOT meta or attributes on the wire - read relationships.talent/candidate/job."
|
|
20821
20918
|
},
|
|
20822
20919
|
"timestamps": {
|
|
20823
20920
|
"title": "ResourceTimestampsSchema",
|
|
@@ -20834,6 +20931,172 @@
|
|
|
20834
20931
|
}
|
|
20835
20932
|
}
|
|
20836
20933
|
}
|
|
20934
|
+
},
|
|
20935
|
+
"relationships": {
|
|
20936
|
+
"title": "ConversationRelationshipsSchema",
|
|
20937
|
+
"type": "object",
|
|
20938
|
+
"properties": {
|
|
20939
|
+
"candidate": {
|
|
20940
|
+
"title": "ConversationRelationshipsCandidateSchema",
|
|
20941
|
+
"type": "object",
|
|
20942
|
+
"properties": {
|
|
20943
|
+
"data": {
|
|
20944
|
+
"title": "ConversationRelationshipsCandidateDataSchema",
|
|
20945
|
+
"type": "object",
|
|
20946
|
+
"properties": {
|
|
20947
|
+
"type": {
|
|
20948
|
+
"type": "string"
|
|
20949
|
+
},
|
|
20950
|
+
"id": {
|
|
20951
|
+
"type": "string"
|
|
20952
|
+
}
|
|
20953
|
+
}
|
|
20954
|
+
}
|
|
20955
|
+
}
|
|
20956
|
+
},
|
|
20957
|
+
"emails": {
|
|
20958
|
+
"title": "ConversationRelationshipsEmailsSchema",
|
|
20959
|
+
"type": "object",
|
|
20960
|
+
"properties": {
|
|
20961
|
+
"data": {
|
|
20962
|
+
"type": "array",
|
|
20963
|
+
"items": {
|
|
20964
|
+
"title": "ConversationRelationshipsEmailsDataSchema",
|
|
20965
|
+
"type": "object",
|
|
20966
|
+
"properties": {
|
|
20967
|
+
"type": {
|
|
20968
|
+
"type": "string"
|
|
20969
|
+
},
|
|
20970
|
+
"id": {
|
|
20971
|
+
"type": "string"
|
|
20972
|
+
}
|
|
20973
|
+
}
|
|
20974
|
+
}
|
|
20975
|
+
}
|
|
20976
|
+
}
|
|
20977
|
+
},
|
|
20978
|
+
"chats": {
|
|
20979
|
+
"title": "ConversationRelationshipsChatsSchema",
|
|
20980
|
+
"type": "object",
|
|
20981
|
+
"properties": {
|
|
20982
|
+
"data": {
|
|
20983
|
+
"type": "array",
|
|
20984
|
+
"items": {
|
|
20985
|
+
"title": "ConversationRelationshipsChatsDataSchema",
|
|
20986
|
+
"type": "object",
|
|
20987
|
+
"properties": {
|
|
20988
|
+
"type": {
|
|
20989
|
+
"type": "string"
|
|
20990
|
+
},
|
|
20991
|
+
"id": {
|
|
20992
|
+
"type": "string"
|
|
20993
|
+
}
|
|
20994
|
+
}
|
|
20995
|
+
}
|
|
20996
|
+
}
|
|
20997
|
+
}
|
|
20998
|
+
},
|
|
20999
|
+
"calls": {
|
|
21000
|
+
"title": "ConversationRelationshipsCallsSchema",
|
|
21001
|
+
"type": "object",
|
|
21002
|
+
"properties": {
|
|
21003
|
+
"data": {
|
|
21004
|
+
"type": "array",
|
|
21005
|
+
"items": {
|
|
21006
|
+
"title": "ConversationRelationshipsCallsDataSchema",
|
|
21007
|
+
"type": "object",
|
|
21008
|
+
"properties": {
|
|
21009
|
+
"type": {
|
|
21010
|
+
"type": "string"
|
|
21011
|
+
},
|
|
21012
|
+
"id": {
|
|
21013
|
+
"type": "string"
|
|
21014
|
+
}
|
|
21015
|
+
}
|
|
21016
|
+
}
|
|
21017
|
+
}
|
|
21018
|
+
}
|
|
21019
|
+
},
|
|
21020
|
+
"meetings": {
|
|
21021
|
+
"title": "ConversationRelationshipsMeetingsSchema",
|
|
21022
|
+
"type": "object",
|
|
21023
|
+
"properties": {
|
|
21024
|
+
"data": {
|
|
21025
|
+
"type": "array",
|
|
21026
|
+
"items": {
|
|
21027
|
+
"title": "ConversationRelationshipsMeetingsDataSchema",
|
|
21028
|
+
"type": "object",
|
|
21029
|
+
"properties": {
|
|
21030
|
+
"type": {
|
|
21031
|
+
"type": "string"
|
|
21032
|
+
},
|
|
21033
|
+
"id": {
|
|
21034
|
+
"type": "string"
|
|
21035
|
+
}
|
|
21036
|
+
}
|
|
21037
|
+
}
|
|
21038
|
+
}
|
|
21039
|
+
}
|
|
21040
|
+
},
|
|
21041
|
+
"labels": {
|
|
21042
|
+
"title": "ConversationRelationshipsLabelsSchema",
|
|
21043
|
+
"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.",
|
|
21044
|
+
"type": "object",
|
|
21045
|
+
"properties": {
|
|
21046
|
+
"data": {
|
|
21047
|
+
"type": "array",
|
|
21048
|
+
"items": {
|
|
21049
|
+
"title": "ConversationRelationshipsLabelsDataSchema",
|
|
21050
|
+
"type": "object",
|
|
21051
|
+
"properties": {
|
|
21052
|
+
"type": {
|
|
21053
|
+
"type": "string"
|
|
21054
|
+
},
|
|
21055
|
+
"id": {
|
|
21056
|
+
"type": "string"
|
|
21057
|
+
}
|
|
21058
|
+
}
|
|
21059
|
+
}
|
|
21060
|
+
}
|
|
21061
|
+
}
|
|
21062
|
+
},
|
|
21063
|
+
"talent": {
|
|
21064
|
+
"title": "ConversationRelationshipsTalentSchema",
|
|
21065
|
+
"type": "object",
|
|
21066
|
+
"properties": {
|
|
21067
|
+
"data": {
|
|
21068
|
+
"title": "ConversationRelationshipsTalentDataSchema",
|
|
21069
|
+
"type": "object",
|
|
21070
|
+
"properties": {
|
|
21071
|
+
"type": {
|
|
21072
|
+
"type": "string"
|
|
21073
|
+
},
|
|
21074
|
+
"id": {
|
|
21075
|
+
"type": "string"
|
|
21076
|
+
}
|
|
21077
|
+
}
|
|
21078
|
+
}
|
|
21079
|
+
}
|
|
21080
|
+
},
|
|
21081
|
+
"job": {
|
|
21082
|
+
"title": "ConversationRelationshipsJobSchema",
|
|
21083
|
+
"type": "object",
|
|
21084
|
+
"properties": {
|
|
21085
|
+
"data": {
|
|
21086
|
+
"title": "ConversationRelationshipsJobDataSchema",
|
|
21087
|
+
"type": "object",
|
|
21088
|
+
"properties": {
|
|
21089
|
+
"type": {
|
|
21090
|
+
"type": "string"
|
|
21091
|
+
},
|
|
21092
|
+
"id": {
|
|
21093
|
+
"type": "string"
|
|
21094
|
+
}
|
|
21095
|
+
}
|
|
21096
|
+
}
|
|
21097
|
+
}
|
|
21098
|
+
}
|
|
21099
|
+
}
|
|
20837
21100
|
}
|
|
20838
21101
|
}
|
|
20839
21102
|
}
|