@smartytalent/openai-tools 0.8.14 → 0.8.16

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 +62 -8
  2. package/package.json +1 -1
package/dist/tools.json CHANGED
@@ -168,6 +168,10 @@
168
168
  "ad": {
169
169
  "type": "object"
170
170
  },
171
+ "brand": {
172
+ "type": "object",
173
+ "description": "Brand rules the ad and careers generators read. Split by who can\nact on what: exact colours are applied by CODE (an image model\nonly ever approximates a hex), while the look-and-feel strings\nare fed to the image prompt. Keys: primaryColor / secondaryColor\n(^#[0-9a-fA-F]{6}$), photography, avoid, tone. Freeform for now;\na dedicated brand service is the endgame once logo variants,\ntypefaces and versioning arrive."
174
+ },
171
175
  "conversation": {
172
176
  "type": "object"
173
177
  },
@@ -632,6 +636,10 @@
632
636
  "ad": {
633
637
  "type": "object"
634
638
  },
639
+ "brand": {
640
+ "type": "object",
641
+ "description": "Brand rules the ad and careers generators read. Split by who can\nact on what: exact colours are applied by CODE (an image model\nonly ever approximates a hex), while the look-and-feel strings\nare fed to the image prompt. Keys: primaryColor / secondaryColor\n(^#[0-9a-fA-F]{6}$), photography, avoid, tone. Freeform for now;\na dedicated brand service is the endgame once logo variants,\ntypefaces and versioning arrive."
642
+ },
635
643
  "conversation": {
636
644
  "type": "object"
637
645
  },
@@ -8276,6 +8284,10 @@
8276
8284
  "type": "integer",
8277
8285
  "description": "Optimistic-concurrency token, bumped atomically on every write.\nSend it back as `If-Match: \"<revision>\"` on PATCH to make the\nwrite conditional; a mismatch is a 409 `SM_FORM_STALE`, meaning\nsomeone else saved since your read. Without the header the write\nis unconditional and the last writer wins - which for a form\nmeans silently replacing the whole field schema."
8278
8286
  },
8287
+ "translate": {
8288
+ "type": "boolean",
8289
+ "description": "Fill missing locales on the field schema, asynchronously. Fires\nafter the write lands, so it can ride the same PATCH as an edit or\nbe sent alone. Targets the tenant's active languages plus the\nform's own `languageCode`, translating FROM the `en-US` text - a\nfield with no `en-US` label is skipped rather than invented.\n\nFill-only-missing: text already present in a locale is never\noverwritten, and an operator edit that lands mid-run wins (the\nfill re-merges only what is still missing). Field ids,\n`options[].value`, `knockout`, `verifies` and `expectedAnswer` are\nnever touched, so the tokens the submission gate compares survive.\n\nThe outcome lands in `meta.translation`\n(`status`, `translated`, `locales`, `startedAt`, `finishedAt`);\npoll `showForm` for it. Publishing is separate: the filled text\nreaches the apply page on the next `publish: true`."
8290
+ },
8279
8291
  "publishedUrl": {
8280
8292
  "type": "string",
8281
8293
  "description": "Where the published document lives. Server-managed: the server\nowns the key it wrote, so never compose this URL client-side - a\nURL built from the wrong tenant shortCode is indistinguishable\nfrom a correct one."
@@ -8408,6 +8420,10 @@
8408
8420
  "type": "integer",
8409
8421
  "description": "Optimistic-concurrency token, bumped atomically on every write.\nSend it back as `If-Match: \"<revision>\"` on PATCH to make the\nwrite conditional; a mismatch is a 409 `SM_FORM_STALE`, meaning\nsomeone else saved since your read. Without the header the write\nis unconditional and the last writer wins - which for a form\nmeans silently replacing the whole field schema."
8410
8422
  },
8423
+ "translate": {
8424
+ "type": "boolean",
8425
+ "description": "Fill missing locales on the field schema, asynchronously. Fires\nafter the write lands, so it can ride the same PATCH as an edit or\nbe sent alone. Targets the tenant's active languages plus the\nform's own `languageCode`, translating FROM the `en-US` text - a\nfield with no `en-US` label is skipped rather than invented.\n\nFill-only-missing: text already present in a locale is never\noverwritten, and an operator edit that lands mid-run wins (the\nfill re-merges only what is still missing). Field ids,\n`options[].value`, `knockout`, `verifies` and `expectedAnswer` are\nnever touched, so the tokens the submission gate compares survive.\n\nThe outcome lands in `meta.translation`\n(`status`, `translated`, `locales`, `startedAt`, `finishedAt`);\npoll `showForm` for it. Publishing is separate: the filled text\nreaches the apply page on the next `publish: true`."
8426
+ },
8411
8427
  "publishedUrl": {
8412
8428
  "type": "string",
8413
8429
  "description": "Where the published document lives. Server-managed: the server\nowns the key it wrote, so never compose this URL client-side - a\nURL built from the wrong tenant shortCode is indistinguishable\nfrom a correct one."
@@ -20298,7 +20314,17 @@
20298
20314
  "type": "string"
20299
20315
  },
20300
20316
  "status": {
20301
- "type": "string"
20317
+ "type": "string",
20318
+ "enum": [
20319
+ "active",
20320
+ "inactive",
20321
+ "pending",
20322
+ "draft",
20323
+ "accepted",
20324
+ "archived",
20325
+ "failed"
20326
+ ],
20327
+ "description": "Lifecycle of the ad. Clients do NOT drive `accepted`: the gate-2\nworkflow's job:accept-artifacts step flips draft -> accepted when the\noperator activates the job. A build-phase ad lands `draft`, a legacy\ncreate-on-activate ad lands `active`, and `failed` is stamped by the\npipeline's own failure handler."
20302
20328
  },
20303
20329
  "platforms": {
20304
20330
  "type": "object",
@@ -20306,7 +20332,7 @@
20306
20332
  },
20307
20333
  "files": {
20308
20334
  "type": "array",
20309
- "description": "Generated ad artifacts: master images per aspect variant, platform\ncrops, and a zip. Stored in the PRIVATE ad bucket; each entry carries\na short-lived presigned `url` the govern UI renders during review.\nThe public CDN copy is written only when the job is accepted\n(ad:publish). Replaces the never-emitted legacy `images` field.",
20335
+ "description": "Generated ad artifacts: master images per aspect variant, platform\ncrops, and a zip. Stored in the PRIVATE ad bucket; each entry carries\na short-lived presigned `url` the govern UI renders during review.\n\nThe PUBLIC CDN copy of the apply hero and listing card is written by\nthe `apply:publish` workflow action, which runs automatically as a\nstep of the gate-2 workflow (Activate Job From Operator). There is no\n`ad:publish` action and no status a client can write to trigger\npublication. The published URLs are `heroUrl` / `cardUrl` inside\n`tenants/{tenantShortCode}/apply/{jobShortCode}.json` on the CDN, and\nthey are content-addressed (a regenerated creative gets a new path)\nso they can be cached immutably.\n\nReplaces the never-emitted legacy `images` field.",
20310
20336
  "items": {
20311
20337
  "type": "object",
20312
20338
  "properties": {
@@ -20321,11 +20347,20 @@
20321
20347
  },
20322
20348
  "variant": {
20323
20349
  "type": "string",
20324
- "description": "Aspect variant for a master (square / landscape / portrait)."
20350
+ "enum": [
20351
+ "square",
20352
+ "landscape"
20353
+ ],
20354
+ "description": "Aspect variant for a master. `portrait` was removed - nothing consumed it."
20325
20355
  },
20326
20356
  "platform": {
20327
20357
  "type": "string",
20328
- "description": "Target platform for a crop (linkedin / indeed / ...)."
20358
+ "description": "Target platform for a crop (linkedin_short / indeed / apply / apply_card / ...)."
20359
+ },
20360
+ "language": {
20361
+ "type": "string",
20362
+ "pattern": "^[a-z]{2}-[A-Z]{2}$",
20363
+ "description": "Locale of the text composited onto this crop. Present only on\n`type: image`; masters are text-free artwork and the zip is a\nbundle, so both omit it. Absent on crops generated before\nper-locale banners shipped - treat as the job's languageCode."
20329
20364
  },
20330
20365
  "s3Key": {
20331
20366
  "type": "string"
@@ -20461,7 +20496,17 @@
20461
20496
  "type": "string"
20462
20497
  },
20463
20498
  "status": {
20464
- "type": "string"
20499
+ "type": "string",
20500
+ "enum": [
20501
+ "active",
20502
+ "inactive",
20503
+ "pending",
20504
+ "draft",
20505
+ "accepted",
20506
+ "archived",
20507
+ "failed"
20508
+ ],
20509
+ "description": "Lifecycle of the ad. Clients do NOT drive `accepted`: the gate-2\nworkflow's job:accept-artifacts step flips draft -> accepted when the\noperator activates the job. A build-phase ad lands `draft`, a legacy\ncreate-on-activate ad lands `active`, and `failed` is stamped by the\npipeline's own failure handler."
20465
20510
  },
20466
20511
  "platforms": {
20467
20512
  "type": "object",
@@ -20469,7 +20514,7 @@
20469
20514
  },
20470
20515
  "files": {
20471
20516
  "type": "array",
20472
- "description": "Generated ad artifacts: master images per aspect variant, platform\ncrops, and a zip. Stored in the PRIVATE ad bucket; each entry carries\na short-lived presigned `url` the govern UI renders during review.\nThe public CDN copy is written only when the job is accepted\n(ad:publish). Replaces the never-emitted legacy `images` field.",
20517
+ "description": "Generated ad artifacts: master images per aspect variant, platform\ncrops, and a zip. Stored in the PRIVATE ad bucket; each entry carries\na short-lived presigned `url` the govern UI renders during review.\n\nThe PUBLIC CDN copy of the apply hero and listing card is written by\nthe `apply:publish` workflow action, which runs automatically as a\nstep of the gate-2 workflow (Activate Job From Operator). There is no\n`ad:publish` action and no status a client can write to trigger\npublication. The published URLs are `heroUrl` / `cardUrl` inside\n`tenants/{tenantShortCode}/apply/{jobShortCode}.json` on the CDN, and\nthey are content-addressed (a regenerated creative gets a new path)\nso they can be cached immutably.\n\nReplaces the never-emitted legacy `images` field.",
20473
20518
  "items": {
20474
20519
  "type": "object",
20475
20520
  "properties": {
@@ -20484,11 +20529,20 @@
20484
20529
  },
20485
20530
  "variant": {
20486
20531
  "type": "string",
20487
- "description": "Aspect variant for a master (square / landscape / portrait)."
20532
+ "enum": [
20533
+ "square",
20534
+ "landscape"
20535
+ ],
20536
+ "description": "Aspect variant for a master. `portrait` was removed - nothing consumed it."
20488
20537
  },
20489
20538
  "platform": {
20490
20539
  "type": "string",
20491
- "description": "Target platform for a crop (linkedin / indeed / ...)."
20540
+ "description": "Target platform for a crop (linkedin_short / indeed / apply / apply_card / ...)."
20541
+ },
20542
+ "language": {
20543
+ "type": "string",
20544
+ "pattern": "^[a-z]{2}-[A-Z]{2}$",
20545
+ "description": "Locale of the text composited onto this crop. Present only on\n`type: image`; masters are text-free artwork and the zip is a\nbundle, so both omit it. Absent on crops generated before\nper-locale banners shipped - treat as the job's languageCode."
20492
20546
  },
20493
20547
  "s3Key": {
20494
20548
  "type": "string"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartytalent/openai-tools",
3
- "version": "0.8.14",
3
+ "version": "0.8.16",
4
4
  "description": "OpenAI function/tool definitions for SmartyTalent API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",