@smartytalent/openai-tools 0.9.7 → 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.
Files changed (2) hide show
  1. package/dist/tools.json +279 -6
  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",
@@ -392,6 +392,23 @@
392
392
  "type": "integer",
393
393
  "minimum": 1,
394
394
  "description": "Max outbound SMS to one number per day (phase-2 rails)"
395
+ },
396
+ "smsDailyBudget": {
397
+ "type": "integer",
398
+ "minimum": 1,
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."
395
412
  }
396
413
  }
397
414
  }
@@ -876,7 +893,7 @@
876
893
  },
877
894
  "limits": {
878
895
  "type": "object",
879
- "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.",
896
+ "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.",
880
897
  "properties": {
881
898
  "callsPerCliHour": {
882
899
  "type": "integer",
@@ -906,6 +923,23 @@
906
923
  "type": "integer",
907
924
  "minimum": 1,
908
925
  "description": "Max outbound SMS to one number per day (phase-2 rails)"
926
+ },
927
+ "smsDailyBudget": {
928
+ "type": "integer",
929
+ "minimum": 1,
930
+ "description": "Daily outbound-SMS budget for the tenant across the inbound-call channel (2b rails; container default applies when unset)"
931
+ },
932
+ "emailIntakeRepliesDay": {
933
+ "type": "integer",
934
+ "minimum": 1,
935
+ "default": 200,
936
+ "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."
937
+ },
938
+ "emailIntakeSubmissionsDay": {
939
+ "type": "integer",
940
+ "minimum": 1,
941
+ "default": 50,
942
+ "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."
909
943
  }
910
944
  }
911
945
  }
@@ -4570,6 +4604,10 @@
4570
4604
  "title"
4571
4605
  ],
4572
4606
  "properties": {
4607
+ "ownerId": {
4608
+ "type": "string",
4609
+ "description": "userId of the job owner (set server-side at create; the Boe user on workflow-built jobs). Read-only."
4610
+ },
4573
4611
  "title": {
4574
4612
  "title": "JobAttributesTitleSchema",
4575
4613
  "description": "The job title/position. Language-keyed object where keys are locale codes (e.g. en-US, pl-PL).",
@@ -5396,6 +5434,10 @@
5396
5434
  "title"
5397
5435
  ],
5398
5436
  "properties": {
5437
+ "ownerId": {
5438
+ "type": "string",
5439
+ "description": "userId of the job owner (set server-side at create; the Boe user on workflow-built jobs). Read-only."
5440
+ },
5399
5441
  "title": {
5400
5442
  "title": "JobAttributesTitleSchema",
5401
5443
  "description": "The job title/position. Language-keyed object where keys are locale codes (e.g. en-US, pl-PL).",
@@ -8089,6 +8131,28 @@
8089
8131
  }
8090
8132
  }
8091
8133
  },
8134
+ "labels": {
8135
+ "title": "EmailRelationshipsLabelsSchema",
8136
+ "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.",
8137
+ "type": "object",
8138
+ "properties": {
8139
+ "data": {
8140
+ "type": "array",
8141
+ "items": {
8142
+ "title": "EmailRelationshipsLabelsDataSchema",
8143
+ "type": "object",
8144
+ "properties": {
8145
+ "type": {
8146
+ "type": "string"
8147
+ },
8148
+ "id": {
8149
+ "type": "string"
8150
+ }
8151
+ }
8152
+ }
8153
+ }
8154
+ }
8155
+ },
8092
8156
  "candidate": {
8093
8157
  "title": "EmailRelationshipsCandidateSchema",
8094
8158
  "type": "object",
@@ -8107,6 +8171,25 @@
8107
8171
  }
8108
8172
  }
8109
8173
  },
8174
+ "talent": {
8175
+ "title": "EmailRelationshipsTalentSchema",
8176
+ "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.",
8177
+ "type": "object",
8178
+ "properties": {
8179
+ "data": {
8180
+ "title": "EmailRelationshipsTalentDataSchema",
8181
+ "type": "object",
8182
+ "properties": {
8183
+ "type": {
8184
+ "type": "string"
8185
+ },
8186
+ "id": {
8187
+ "type": "string"
8188
+ }
8189
+ }
8190
+ }
8191
+ }
8192
+ },
8110
8193
  "conversations": {
8111
8194
  "title": "EmailRelationshipsConversationsSchema",
8112
8195
  "type": "object",
@@ -12099,7 +12182,7 @@
12099
12182
  },
12100
12183
  "meta": {
12101
12184
  "type": "object",
12102
- "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."
12185
+ "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."
12103
12186
  },
12104
12187
  "timestamps": {
12105
12188
  "title": "ResourceTimestampsSchema",
@@ -12591,7 +12674,7 @@
12591
12674
  },
12592
12675
  "meta": {
12593
12676
  "type": "object",
12594
- "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."
12677
+ "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."
12595
12678
  },
12596
12679
  "timestamps": {
12597
12680
  "title": "ResourceTimestampsSchema",
@@ -19948,7 +20031,8 @@
19948
20031
  },
19949
20032
  "meta": {
19950
20033
  "type": "object",
19951
- "additionalProperties": true
20034
+ "additionalProperties": true,
20035
+ "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."
19952
20036
  },
19953
20037
  "timestamps": {
19954
20038
  "title": "ResourceTimestampsSchema",
@@ -20072,6 +20156,28 @@
20072
20156
  }
20073
20157
  }
20074
20158
  },
20159
+ "labels": {
20160
+ "title": "ConversationRelationshipsLabelsSchema",
20161
+ "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.",
20162
+ "type": "object",
20163
+ "properties": {
20164
+ "data": {
20165
+ "type": "array",
20166
+ "items": {
20167
+ "title": "ConversationRelationshipsLabelsDataSchema",
20168
+ "type": "object",
20169
+ "properties": {
20170
+ "type": {
20171
+ "type": "string"
20172
+ },
20173
+ "id": {
20174
+ "type": "string"
20175
+ }
20176
+ }
20177
+ }
20178
+ }
20179
+ }
20180
+ },
20075
20181
  "talent": {
20076
20182
  "title": "ConversationRelationshipsTalentSchema",
20077
20183
  "type": "object",
@@ -20223,7 +20329,8 @@
20223
20329
  },
20224
20330
  "meta": {
20225
20331
  "type": "object",
20226
- "additionalProperties": true
20332
+ "additionalProperties": true,
20333
+ "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."
20227
20334
  },
20228
20335
  "timestamps": {
20229
20336
  "title": "ResourceTimestampsSchema",
@@ -20240,6 +20347,172 @@
20240
20347
  }
20241
20348
  }
20242
20349
  }
20350
+ },
20351
+ "relationships": {
20352
+ "title": "ConversationRelationshipsSchema",
20353
+ "type": "object",
20354
+ "properties": {
20355
+ "candidate": {
20356
+ "title": "ConversationRelationshipsCandidateSchema",
20357
+ "type": "object",
20358
+ "properties": {
20359
+ "data": {
20360
+ "title": "ConversationRelationshipsCandidateDataSchema",
20361
+ "type": "object",
20362
+ "properties": {
20363
+ "type": {
20364
+ "type": "string"
20365
+ },
20366
+ "id": {
20367
+ "type": "string"
20368
+ }
20369
+ }
20370
+ }
20371
+ }
20372
+ },
20373
+ "emails": {
20374
+ "title": "ConversationRelationshipsEmailsSchema",
20375
+ "type": "object",
20376
+ "properties": {
20377
+ "data": {
20378
+ "type": "array",
20379
+ "items": {
20380
+ "title": "ConversationRelationshipsEmailsDataSchema",
20381
+ "type": "object",
20382
+ "properties": {
20383
+ "type": {
20384
+ "type": "string"
20385
+ },
20386
+ "id": {
20387
+ "type": "string"
20388
+ }
20389
+ }
20390
+ }
20391
+ }
20392
+ }
20393
+ },
20394
+ "chats": {
20395
+ "title": "ConversationRelationshipsChatsSchema",
20396
+ "type": "object",
20397
+ "properties": {
20398
+ "data": {
20399
+ "type": "array",
20400
+ "items": {
20401
+ "title": "ConversationRelationshipsChatsDataSchema",
20402
+ "type": "object",
20403
+ "properties": {
20404
+ "type": {
20405
+ "type": "string"
20406
+ },
20407
+ "id": {
20408
+ "type": "string"
20409
+ }
20410
+ }
20411
+ }
20412
+ }
20413
+ }
20414
+ },
20415
+ "calls": {
20416
+ "title": "ConversationRelationshipsCallsSchema",
20417
+ "type": "object",
20418
+ "properties": {
20419
+ "data": {
20420
+ "type": "array",
20421
+ "items": {
20422
+ "title": "ConversationRelationshipsCallsDataSchema",
20423
+ "type": "object",
20424
+ "properties": {
20425
+ "type": {
20426
+ "type": "string"
20427
+ },
20428
+ "id": {
20429
+ "type": "string"
20430
+ }
20431
+ }
20432
+ }
20433
+ }
20434
+ }
20435
+ },
20436
+ "meetings": {
20437
+ "title": "ConversationRelationshipsMeetingsSchema",
20438
+ "type": "object",
20439
+ "properties": {
20440
+ "data": {
20441
+ "type": "array",
20442
+ "items": {
20443
+ "title": "ConversationRelationshipsMeetingsDataSchema",
20444
+ "type": "object",
20445
+ "properties": {
20446
+ "type": {
20447
+ "type": "string"
20448
+ },
20449
+ "id": {
20450
+ "type": "string"
20451
+ }
20452
+ }
20453
+ }
20454
+ }
20455
+ }
20456
+ },
20457
+ "labels": {
20458
+ "title": "ConversationRelationshipsLabelsSchema",
20459
+ "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.",
20460
+ "type": "object",
20461
+ "properties": {
20462
+ "data": {
20463
+ "type": "array",
20464
+ "items": {
20465
+ "title": "ConversationRelationshipsLabelsDataSchema",
20466
+ "type": "object",
20467
+ "properties": {
20468
+ "type": {
20469
+ "type": "string"
20470
+ },
20471
+ "id": {
20472
+ "type": "string"
20473
+ }
20474
+ }
20475
+ }
20476
+ }
20477
+ }
20478
+ },
20479
+ "talent": {
20480
+ "title": "ConversationRelationshipsTalentSchema",
20481
+ "type": "object",
20482
+ "properties": {
20483
+ "data": {
20484
+ "title": "ConversationRelationshipsTalentDataSchema",
20485
+ "type": "object",
20486
+ "properties": {
20487
+ "type": {
20488
+ "type": "string"
20489
+ },
20490
+ "id": {
20491
+ "type": "string"
20492
+ }
20493
+ }
20494
+ }
20495
+ }
20496
+ },
20497
+ "job": {
20498
+ "title": "ConversationRelationshipsJobSchema",
20499
+ "type": "object",
20500
+ "properties": {
20501
+ "data": {
20502
+ "title": "ConversationRelationshipsJobDataSchema",
20503
+ "type": "object",
20504
+ "properties": {
20505
+ "type": {
20506
+ "type": "string"
20507
+ },
20508
+ "id": {
20509
+ "type": "string"
20510
+ }
20511
+ }
20512
+ }
20513
+ }
20514
+ }
20515
+ }
20243
20516
  }
20244
20517
  }
20245
20518
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartytalent/openai-tools",
3
- "version": "0.9.7",
3
+ "version": "0.9.9",
4
4
  "description": "OpenAI function/tool definitions for SmartyTalent API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",