@aglyn/plugins-ai 1.0.0-beta.263 → 1.0.0-beta.266
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/package.json +17 -17
- package/src/lib/assets/site-styles/beauty.webp +0 -0
- package/src/lib/assets/site-styles/blog.webp +0 -0
- package/src/lib/assets/site-styles/business.webp +0 -0
- package/src/lib/assets/site-styles/coming-soon.webp +0 -0
- package/src/lib/assets/site-styles/education.webp +0 -0
- package/src/lib/assets/site-styles/events.webp +0 -0
- package/src/lib/assets/site-styles/fitness.webp +0 -0
- package/src/lib/assets/site-styles/landing.webp +0 -0
- package/src/lib/assets/site-styles/music.webp +0 -0
- package/src/lib/assets/site-styles/nonprofit.webp +0 -0
- package/src/lib/assets/site-styles/personal.webp +0 -0
- package/src/lib/assets/site-styles/photography.webp +0 -0
- package/src/lib/assets/site-styles/portfolio.webp +0 -0
- package/src/lib/assets/site-styles/professional.webp +0 -0
- package/src/lib/assets/site-styles/realestate.webp +0 -0
- package/src/lib/assets/site-styles/restaurant.webp +0 -0
- package/src/lib/assets/site-styles/store.webp +0 -0
- package/src/lib/assets/site-styles/studio.webp +0 -0
- package/src/lib/assets/site-styles/trades.webp +0 -0
- package/src/lib/assets/site-styles/wellness.webp +0 -0
- package/src/lib/assets/site-styles/yoga.webp +0 -0
- package/src/lib/components/ai-site-start-card.component.d.ts +12 -0
- package/src/lib/components/ai-site-start-card.component.js +256 -236
- package/src/lib/components/ai-site-start-card.component.js.map +1 -1
- package/src/lib/components/ai-site-start-steps.component.d.ts +108 -0
- package/src/lib/components/ai-site-start-steps.component.js +451 -0
- package/src/lib/components/ai-site-start-steps.component.js.map +1 -0
- package/src/lib/components/ai-site-start-tracking.d.ts +114 -0
- package/src/lib/components/ai-site-start-tracking.js +277 -0
- package/src/lib/components/ai-site-start-tracking.js.map +1 -0
- package/src/lib/components/ai-site-style-previews.d.ts +26 -0
- package/src/lib/components/ai-site-style-previews.js +115 -0
- package/src/lib/components/ai-site-style-previews.js.map +1 -0
- package/src/lib/insights/ai-insight-digest.d.ts +9 -0
- package/src/lib/insights/ai-insight-digest.js +35 -11
- package/src/lib/insights/ai-insight-digest.js.map +1 -1
- package/src/lib/jobs/ai-job-page-language.d.ts +9 -0
- package/src/lib/jobs/ai-job-page-language.js +20 -2
- package/src/lib/jobs/ai-job-page-language.js.map +1 -1
- package/src/lib/jobs/ai-job-page-sections.js +8 -2
- package/src/lib/jobs/ai-job-page-sections.js.map +1 -1
- package/src/lib/jobs/ai-job-plan-step.d.ts +43 -8
- package/src/lib/jobs/ai-job-plan-step.js +99 -18
- package/src/lib/jobs/ai-job-plan-step.js.map +1 -1
- package/src/lib/jobs/ai-job-site-datasets.d.ts +93 -2
- package/src/lib/jobs/ai-job-site-datasets.js +308 -21
- package/src/lib/jobs/ai-job-site-datasets.js.map +1 -1
- package/src/lib/jobs/ai-layout-stock-photos.d.ts +191 -13
- package/src/lib/jobs/ai-layout-stock-photos.js +1709 -69
- package/src/lib/jobs/ai-layout-stock-photos.js.map +1 -1
- package/src/lib/jobs/fixtures/ai-site-foreign-datasets-recording.d.ts +58 -0
- package/src/lib/jobs/fixtures/ai-site-foreign-datasets-recording.js +678 -0
- package/src/lib/jobs/fixtures/ai-site-foreign-datasets-recording.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-beta265-recordings.d.ts +33 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-beta265-recordings.js +270 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-beta265-recordings.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-people-recordings.d.ts +33 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-people-recordings.js +277 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-people-recordings.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-juniper-records-recordings.d.ts +23 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-juniper-records-recordings.js +163 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-juniper-records-recordings.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-learning-center-recordings.d.ts +23 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-learning-center-recordings.js +53 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-learning-center-recordings.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-synchronicity-recordings.d.ts +21 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-synchronicity-recordings.js +119 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-synchronicity-recordings.js.map +1 -0
- package/src/lib/layout-language/ai-layout-compiler.js +54 -15
- package/src/lib/layout-language/ai-layout-compiler.js.map +1 -1
- package/src/lib/layout-language/ai-layout-design.d.ts +6 -3
- package/src/lib/layout-language/ai-layout-design.js +14 -13
- package/src/lib/layout-language/ai-layout-design.js.map +1 -1
- package/src/lib/layout-language/ai-layout-listings.d.ts +55 -0
- package/src/lib/layout-language/ai-layout-listings.js +103 -5
- package/src/lib/layout-language/ai-layout-listings.js.map +1 -1
- package/src/lib/layout-language/ai-layout-pictures.d.ts +42 -8
- package/src/lib/layout-language/ai-layout-pictures.js +91 -6
- package/src/lib/layout-language/ai-layout-pictures.js.map +1 -1
- package/src/lib/model/ai-site-home-arcs.d.ts +75 -0
- package/src/lib/model/ai-site-home-arcs.js +741 -0
- package/src/lib/model/ai-site-home-arcs.js.map +1 -0
- package/src/lib/model/ai-site-inventory.d.ts +18 -0
- package/src/lib/model/ai-site-inventory.js.map +1 -1
- package/src/lib/model/ai-site-job.d.ts +9 -6
- package/src/lib/model/ai-site-job.js +8 -5
- package/src/lib/model/ai-site-job.js.map +1 -1
- package/src/lib/model/ai-site-kinds.js +24 -24
- package/src/lib/model/ai-site-kinds.js.map +1 -1
- package/src/lib/model/ai-site-start-steps.d.ts +67 -0
- package/src/lib/model/ai-site-start-steps.js +127 -0
- package/src/lib/model/ai-site-start-steps.js.map +1 -0
- package/src/lib/model/ai-site-start.js +4 -1
- package/src/lib/model/ai-site-start.js.map +1 -1
- package/src/lib/runtime/ai-doctrine-validators.d.ts +32 -0
- package/src/lib/runtime/ai-doctrine-validators.js +119 -2
- package/src/lib/runtime/ai-doctrine-validators.js.map +1 -1
- package/src/lib/runtime/ai-doctrine.d.ts +6 -1
- package/src/lib/runtime/ai-doctrine.js +9 -5
- package/src/lib/runtime/ai-doctrine.js.map +1 -1
- package/src/lib/runtime/ai-palette.generated.js +5 -2
- package/src/lib/runtime/ai-palette.generated.js.map +1 -1
- package/src/lib/runtime/site-inventory.js +6 -0
- package/src/lib/runtime/site-inventory.js.map +1 -1
- package/src/lib/server/ai-insight-digest-route.js +2 -2
- package/src/lib/server/ai-insight-digest-route.js.map +1 -1
- package/src/lib/usage/assist-free-taste.js +3 -0
- package/src/lib/usage/assist-free-taste.js.map +1 -1
|
@@ -130,6 +130,14 @@ import type { AiBuildPlan } from '../model/ai-build-plan';
|
|
|
130
130
|
* ("wedding" of "a wedding and portrait photographer") is not the craft;
|
|
131
131
|
* and a hero whose second tag names the world too leads one whose first
|
|
132
132
|
* alone does.
|
|
133
|
+
* 9. **A world from the name** (the beta.261 Synchronicity Gym start,
|
|
134
|
+
* AGL-3856: its business type "a local service business" named no world,
|
|
135
|
+
* so its hero searched nothing and was left a black scrim, and its
|
|
136
|
+
* closing band's "Ready to train" took a subway train). A business type
|
|
137
|
+
* that names no world takes the craft its name, else its audience, names
|
|
138
|
+
* where this module lists it ("gym" of "Synchronicity Gym"); and a
|
|
139
|
+
* training word's other senses (a railway's train, an elevator's lift, a
|
|
140
|
+
* newspaper's press, a boat's row) never fill a gym's picture.
|
|
133
141
|
*
|
|
134
142
|
* A slot the library could not fill because it never answered — down, or
|
|
135
143
|
* out of time before its first answer — or because the site's library
|
|
@@ -200,6 +208,8 @@ export interface AiStockSiteTerms {
|
|
|
200
208
|
broad: string[];
|
|
201
209
|
/** The searches for its maker at work, for a story of the craft (AGL-3660); empty for a craft not listed. */
|
|
202
210
|
making: string[];
|
|
211
|
+
/** Whether a picture naming people at a moment is searched by its scene ({@link aiStockScene}, AGL-3856). */
|
|
212
|
+
scenes?: boolean;
|
|
203
213
|
/** Every stem of the business type or brief: what lets a sensitive topic in ({@link SENSITIVE_TOPICS}). */
|
|
204
214
|
named: string[];
|
|
205
215
|
/** Rival crafts' words, each with the words that must then be named too ({@link CRAFT_KIN}). */
|
|
@@ -218,6 +228,12 @@ export interface AiStockSiteTerms {
|
|
|
218
228
|
shun: string[];
|
|
219
229
|
/** Words no photo of the site's craft is OF, among its first tags, unless the slot or the brief names them ({@link CRAFT_KIN}). */
|
|
220
230
|
shunLead: string[];
|
|
231
|
+
/** Whether the site is for adults alone, so no photo of a child is placed on it ({@link aiStockAdultsOnly}, AGL-3856). */
|
|
232
|
+
adults?: boolean;
|
|
233
|
+
/** Where the site's own words set its pictures ({@link aiStockSetting}): a record's moment is set there where its words say nowhere (AGL-3856). */
|
|
234
|
+
setting?: string;
|
|
235
|
+
/** The craft's maker and tools as stems, which a record of its work never leads with ({@link CRAFT_KIN}, AGL-3856). */
|
|
236
|
+
maker?: string[];
|
|
221
237
|
}
|
|
222
238
|
/** The site's terms, read from its business type. */
|
|
223
239
|
export declare function aiStockSiteTerms(businessType: string): AiStockSiteTerms;
|
|
@@ -271,6 +287,18 @@ export interface AiStockSearch extends StockPhotoSearchRequest {
|
|
|
271
287
|
first?: boolean;
|
|
272
288
|
/** Phrases (as stems) of which one must be among the hit's first tags: a borrowed photo is OF the product's category (AGL-3660). */
|
|
273
289
|
leadAny?: readonly string[];
|
|
290
|
+
/** Whether its hits must name its object, whatever the slot's role: a scene's people (AGL-3856). */
|
|
291
|
+
strict?: boolean;
|
|
292
|
+
/** Words its hits never carry, whatever the brief names: a bride in a family session ({@link aiStockScene}). */
|
|
293
|
+
refuse?: readonly string[];
|
|
294
|
+
/** Stems of which every hit names one, whatever else it names: a scene's people, never roses alone ({@link aiStockScene}). */
|
|
295
|
+
needs?: readonly string[];
|
|
296
|
+
/** Stems its own words name, which let a topic in as the brief's do: a family session's children ({@link aiStockScene}). */
|
|
297
|
+
allow?: readonly string[];
|
|
298
|
+
/** Stems no hit's first tags carry: a photographer or a camera on a portfolio's record, a toy frog ({@link aiStockRecordScene}, AGL-3856). */
|
|
299
|
+
refuseLead?: readonly string[];
|
|
300
|
+
/** Whether its hits are held to no world of the site's: a portfolio's record is of its subject, never of the craft (AGL-3856). */
|
|
301
|
+
worldless?: boolean;
|
|
274
302
|
/** Whether it fills a product: no room, no scene, no fragrance bottle ({@link PRODUCT_SCENES}, AGL-3660). */
|
|
275
303
|
product?: boolean;
|
|
276
304
|
/** Words its hits never carry unless the slot or the brief names them ({@link AiStockSiteTerms.shun}). */
|
|
@@ -291,6 +319,69 @@ export type AiStockSlotPart = 'collection' | 'story';
|
|
|
291
319
|
* the craft, or of a thing made by hand, shows the maker at work.
|
|
292
320
|
*/
|
|
293
321
|
export declare function aiStockSlotPart(slot: Pick<AiLayoutPictureSlot, 'role' | 'alt'>, sectionName: string): AiStockSlotPart | undefined;
|
|
322
|
+
/** A role {@link aiStockPeopleRole} reads: its kin's stems, its search word, and whether a photo must name it. */
|
|
323
|
+
export interface AiStockPeopleRole {
|
|
324
|
+
kin: string[];
|
|
325
|
+
query: string;
|
|
326
|
+
required: boolean;
|
|
327
|
+
/** Stems of the role being done, one of which a photo's first tags name ({@link AI_STOCK_ROLE_TAGS_READ}). */
|
|
328
|
+
scene?: string[];
|
|
329
|
+
/** Stems of something else being done, which none of a photo's first tags name. */
|
|
330
|
+
refuse?: string[];
|
|
331
|
+
}
|
|
332
|
+
/** How many of a photo's first tags show a role being done: "teacher, presentation, education, man, students" (AGL-3856). */
|
|
333
|
+
export declare const AI_STOCK_ROLE_TAGS_READ = 6;
|
|
334
|
+
/**
|
|
335
|
+
* The role a person's words say, else the first of the other texts that names
|
|
336
|
+
* one (their list's name): "Online learning coach" of the "Instructors" list
|
|
337
|
+
* is a coach. `null` where none names a listed role.
|
|
338
|
+
*/
|
|
339
|
+
export declare function aiStockPeopleRole(...texts: readonly string[]): AiStockPeopleRole | null;
|
|
340
|
+
/** A role's refusals, less what the person's own words name: a "Drawing instructor" may be drawing. */
|
|
341
|
+
export declare function aiStockRoleRefusals(role: Pick<AiStockPeopleRole, 'refuse'>, words: string): string[];
|
|
342
|
+
/**
|
|
343
|
+
* Whether a site is for adults alone (AGL-3856), as its audience, its name
|
|
344
|
+
* or its business type says: "Adults finishing a high school diploma",
|
|
345
|
+
* "Brightpath Adult Learning Center". Then no photo of a child is placed
|
|
346
|
+
* anywhere on it, whatever else its words name ("school").
|
|
347
|
+
*/
|
|
348
|
+
export declare function aiStockAdultsOnly(texts: ReadonlyArray<string | undefined>): boolean;
|
|
349
|
+
/** What a picture of a moment shows ({@link aiStockScene}). */
|
|
350
|
+
export interface AiStockScene {
|
|
351
|
+
/** The searches that ask for it, the people and their setting first. */
|
|
352
|
+
queries: string[];
|
|
353
|
+
/** The words its photo is scored by: the people, and the setting. */
|
|
354
|
+
subject: string;
|
|
355
|
+
/** The thing a photo of it leads with, and its kin. */
|
|
356
|
+
object: string;
|
|
357
|
+
lead: string[];
|
|
358
|
+
/** Words of which a photo of it names one. */
|
|
359
|
+
people: string[];
|
|
360
|
+
shun: string[];
|
|
361
|
+
/** The stems of its words, which let in what they name: a family's children. */
|
|
362
|
+
named: string[];
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* The scene a picture's words name (AGL-3856): the people at a moment, and
|
|
366
|
+
* where — "Ridgetop Elopement" a couple in the mountains, "Mountain Wedding
|
|
367
|
+
* Day" a wedding couple in the mountains, "Family Session in the Fall" a
|
|
368
|
+
* family in autumn — read from every word, never only the first clause.
|
|
369
|
+
* `null` where it names no people.
|
|
370
|
+
*/
|
|
371
|
+
export declare function aiStockScene(text: string): AiStockScene | null;
|
|
372
|
+
/** Where a text's words set a picture ({@link SCENE_SETTINGS}): "mountains" of "Couples planning mountain weddings"; empty for none. */
|
|
373
|
+
export declare function aiStockSetting(text: string): string;
|
|
374
|
+
/**
|
|
375
|
+
* The moment a portfolio's record shows (AGL-3856): read from the record's
|
|
376
|
+
* own name first, then from what it is filed under, then as a portrait, and
|
|
377
|
+
* set where its name, its category or else the site's own words say. A
|
|
378
|
+
* photographer's "Getting Ready" filed under "Weddings and elopements" is a
|
|
379
|
+
* wedding couple in the mountains; "Milestone Portraits" filed under "Family
|
|
380
|
+
* portraits" a family. Its searches end on the people alone ("couple"), so a
|
|
381
|
+
* moment no photo shows in its setting still shows its people. `null` where
|
|
382
|
+
* neither names people at a moment nor a portrait.
|
|
383
|
+
*/
|
|
384
|
+
export declare function aiStockRecordScene(name: string, category?: string, siteSetting?: string): AiStockScene | null;
|
|
294
385
|
/** What a product falls back to once its own searches find nothing ({@link aiStockProductSearches}). */
|
|
295
386
|
export interface AiStockProductFallback {
|
|
296
387
|
/** The site's broad searches ({@link AiStockSiteTerms.broad}): "handmade soap". */
|
|
@@ -345,8 +436,21 @@ export interface AiStockProductFallback {
|
|
|
345
436
|
* Size" is a bath gift set.
|
|
346
437
|
*/
|
|
347
438
|
export declare function aiStockProductSearches(slot: Pick<AiLayoutPictureSlot, 'aspect' | 'product'>, craft: string, domain?: readonly string[], fallback?: AiStockProductFallback): AiStockSearch[];
|
|
348
|
-
/**
|
|
349
|
-
|
|
439
|
+
/**
|
|
440
|
+
* The searches a slot tries, in order, most specific first, each distinct.
|
|
441
|
+
* A portrait of one of the business's people ({@link AiLayoutPictureSlot.people})
|
|
442
|
+
* asks first for the role its words or its list's name (`sectionName`) say,
|
|
443
|
+
* in the site's world: "teacher classroom" for a "Math instructor" (AGL-3856).
|
|
444
|
+
*/
|
|
445
|
+
export declare function aiStockSearchesFor(slot: Pick<AiLayoutPictureSlot, 'role' | 'alt' | 'aspect' | 'people' | 'record' | 'product'>, terms: Pick<AiStockSiteTerms, 'business' | 'craft' | 'domain' | 'broad'> & Partial<Pick<AiStockSiteTerms, 'making' | 'core' | 'scenes' | 'setting' | 'maker'>>, subject: string, part?: AiStockSlotPart, sectionName?: string): AiStockSearch[];
|
|
446
|
+
/**
|
|
447
|
+
* Whether a slot is a portfolio's record of a craft whose work is people at a
|
|
448
|
+
* moment (AGL-3856): a photographer's "Mountain Elopements" shows an
|
|
449
|
+
* elopement, never the photographer. Searched by the moment its words and its
|
|
450
|
+
* category name, held to no world of the craft, and never led by the craft's
|
|
451
|
+
* own words, an animal or a toy unless the record names them.
|
|
452
|
+
*/
|
|
453
|
+
export declare function aiStockShowsTheWork(slot: Pick<AiLayoutPictureSlot, 'record' | 'role' | 'people' | 'product'>, terms: Partial<Pick<AiStockSiteTerms, 'scenes'>>): boolean;
|
|
350
454
|
/** What a hit is judged by. */
|
|
351
455
|
export interface AiStockJudgement {
|
|
352
456
|
/** The words the picture is of; empty for a picture of the site's world. */
|
|
@@ -387,6 +491,18 @@ export interface AiStockJudgement {
|
|
|
387
491
|
shun?: readonly string[];
|
|
388
492
|
/** Words a hit's first tags never carry unless the subject or the brief names them ({@link AiStockSiteTerms.shunLead}). */
|
|
389
493
|
shunLead?: readonly string[];
|
|
494
|
+
/** Words a hit never carries, whatever the brief names ({@link AiStockSearch.refuse}). */
|
|
495
|
+
refuse?: readonly string[];
|
|
496
|
+
/** Stems of which a hit names one ({@link AiStockSearch.needs}). */
|
|
497
|
+
needs?: readonly string[];
|
|
498
|
+
/** Stems no hit's first tags carry: a child, for a portrait of one of the business's people (AGL-3856). */
|
|
499
|
+
refuseLead?: readonly string[];
|
|
500
|
+
/** Stems naming the role a portrait shows, which a hit is preferred for naming, most of all first (AGL-3856). */
|
|
501
|
+
roles?: readonly string[];
|
|
502
|
+
/** Stems of the role being done, one of which a hit's first tags must name ({@link AiStockPeopleRole.scene}). */
|
|
503
|
+
roleScene?: readonly string[];
|
|
504
|
+
/** Stems of something else being done, which none of a hit's first tags may name ({@link AiStockPeopleRole.refuse}). */
|
|
505
|
+
roleRefuse?: readonly string[];
|
|
390
506
|
}
|
|
391
507
|
/**
|
|
392
508
|
* Whether a hit carries a topic its site never named ({@link SENSITIVE_TOPICS}):
|
|
@@ -412,6 +528,19 @@ export declare function aiStockRelevance(photo: Pick<StockPhoto, 'tags' | 'alt'
|
|
|
412
528
|
* the hits that score alike, so two jobs differ and one job repeats itself.
|
|
413
529
|
*/
|
|
414
530
|
export declare function aiStockRank(photos: readonly StockPhoto[], used: ReadonlySet<string>, seed: string, judgement?: AiStockJudgement): StockPhoto[];
|
|
531
|
+
/**
|
|
532
|
+
* Whether two hits are of one shoot (AGL-3856): one contributor's photos a few
|
|
533
|
+
* uploads apart, as Pixabay numbers them — the beta.265 Granite Peak Barbell
|
|
534
|
+
* coaches were four of one model, 728223 to 728229 — else one page address.
|
|
535
|
+
*/
|
|
536
|
+
export declare function aiStockSameShoot(a: Pick<StockPhoto, 'id' | 'photographer' | 'pageUrl'>, b: Pick<StockPhoto, 'id' | 'photographer' | 'pageUrl'>): boolean;
|
|
537
|
+
/**
|
|
538
|
+
* A search's ranked hits with those of a shoot no slot shows yet first among
|
|
539
|
+
* the best (AGL-3856): a team's three cards are three people where the
|
|
540
|
+
* library has them, never one model three times while another fits as well.
|
|
541
|
+
* Every other order is kept.
|
|
542
|
+
*/
|
|
543
|
+
export declare function aiStockFreshShootsFirst(ranked: readonly StockPhoto[], shown: readonly StockPhoto[], judgement: AiStockJudgement): StockPhoto[];
|
|
415
544
|
/** The pick among a search's hits: the first {@link aiStockRank} would try, or `null`. */
|
|
416
545
|
export declare function aiStockPick(photos: readonly StockPhoto[], used: ReadonlySet<string>, seed: string, judgement?: AiStockJudgement): StockPhoto | null;
|
|
417
546
|
/**
|
|
@@ -423,11 +552,27 @@ export declare function aiStockPlacedSrcs(nodes: NodesMap | null | undefined): s
|
|
|
423
552
|
/** Forgets every job's placed photos; for specs. */
|
|
424
553
|
export declare function aiStockForgetJobPhotos(): void;
|
|
425
554
|
/**
|
|
426
|
-
* A photo described from its own tags (AGL-3856):
|
|
427
|
-
*
|
|
428
|
-
*
|
|
429
|
-
*
|
|
430
|
-
*
|
|
555
|
+
* A photo described from its own tags (AGL-3856): a short English phrase of
|
|
556
|
+
* concrete things, never the library's comma-separated list: "A train at a
|
|
557
|
+
* station", "A confident lawyer in court", "A portrait of a businessman", "A
|
|
558
|
+
* photographer with a camera on a beach", "A kettlebell in a gym", "An analog
|
|
559
|
+
* camera". It says one person at most (a role over a man or a woman, an adult
|
|
560
|
+
* over a girl), what they hold or wear, or one or two things, and where:
|
|
561
|
+
*
|
|
562
|
+
* - an idea or a doing ("law", "feedback", "training", "a read",
|
|
563
|
+
* "participation"), a maker's name ("sony"), a word for the photo itself
|
|
564
|
+
* ("photo", "spot") and a look ("moody", "analog" alone, a season) are left
|
|
565
|
+
* out; a quality ("elderly", "analog") is said before the one thing it
|
|
566
|
+
* qualifies;
|
|
567
|
+
* - of two words for one thing the first tag's stays ("book" over
|
|
568
|
+
* "bookwork", "camera" over "photo-camera"), unless the later phrase holds
|
|
569
|
+
* it whole ("wedding dress" over "wedding");
|
|
570
|
+
* - a second thing comes only from the first two tags and where no place is
|
|
571
|
+
* said, what a person holds only from the first three, where it is set
|
|
572
|
+
* from the first ten;
|
|
573
|
+
* - no word is said twice: never "an elderly couple and an elderly".
|
|
574
|
+
*
|
|
575
|
+
* `null` where no tag names a thing.
|
|
431
576
|
*/
|
|
432
577
|
export declare function aiStockTagsAlt(tags: readonly string[], proper?: ReadonlySet<string>): string | null;
|
|
433
578
|
/**
|
|
@@ -455,7 +600,8 @@ export declare function aiStockTagsAlt(tags: readonly string[], proper?: Readonl
|
|
|
455
600
|
* description, and are never kept. Otherwise the photo is described by the
|
|
456
601
|
* library's own words: its description where it writes one (a Pexels hit's
|
|
457
602
|
* `alt`), else its first tags as an English phrase ({@link aiStockTagsAlt}),
|
|
458
|
-
* never the library's tag list
|
|
603
|
+
* never the library's tag list, and where no tag names a thing, the slot's
|
|
604
|
+
* own subject: its words, else its section's name. The libraries write in English, and no model
|
|
459
605
|
* translates them, so a site in another language takes the platform's own
|
|
460
606
|
* words for an illustrative photo in its language (`aiLayoutLabel`), true of
|
|
461
607
|
* any photo, as does a hit whose words name no thing.
|
|
@@ -491,6 +637,20 @@ export interface AiLayoutStockPhotoSourceInput {
|
|
|
491
637
|
* gave no photo words, rather than its business type in its own language.
|
|
492
638
|
*/
|
|
493
639
|
kindWords?: string;
|
|
640
|
+
/**
|
|
641
|
+
* The business's name, as the person typed it (AGL-3856): what an English
|
|
642
|
+
* site is searched by when its business type names no world ("a local
|
|
643
|
+
* service business") and its name names a craft this module lists
|
|
644
|
+
* ("Synchronicity Gym"). Never its world otherwise.
|
|
645
|
+
*/
|
|
646
|
+
name?: string;
|
|
647
|
+
/** Who the site is for, as the person typed it: searched as the name is, after it (AGL-3856). */
|
|
648
|
+
audience?: string;
|
|
649
|
+
/**
|
|
650
|
+
* The id of the kind of site the person picked ("education"): what a site
|
|
651
|
+
* is searched by when nothing else names its world (AGL-3856).
|
|
652
|
+
*/
|
|
653
|
+
kind?: string;
|
|
494
654
|
/** The page's section names, by plan index. */
|
|
495
655
|
sectionNames: readonly string[];
|
|
496
656
|
/**
|
|
@@ -510,13 +670,14 @@ export interface AiLayoutStockPhotoDeps {
|
|
|
510
670
|
budgetMs?: number;
|
|
511
671
|
}
|
|
512
672
|
/**
|
|
513
|
-
* A job's language and English photo words (AGL-3760),
|
|
514
|
-
*
|
|
673
|
+
* A job's language and English photo words (AGL-3760), the English name of
|
|
674
|
+
* its kind of site (AGL-3771), and the business's name and audience as the
|
|
675
|
+
* person typed them (AGL-3856), as a stock photo source takes them.
|
|
515
676
|
*/
|
|
516
677
|
export declare function aiStockPhotoWordsOf(job: {
|
|
517
678
|
plan?: Pick<AiBuildPlan, 'language' | 'photoWords'> | null;
|
|
518
679
|
inputs?: Readonly<Record<string, unknown>> | null;
|
|
519
|
-
}): Pick<AiLayoutStockPhotoSourceInput, 'language' | 'photoWords' | 'kindWords'>;
|
|
680
|
+
}): Pick<AiLayoutStockPhotoSourceInput, 'language' | 'photoWords' | 'kindWords' | 'name' | 'audience' | 'kind'>;
|
|
520
681
|
/**
|
|
521
682
|
* The subject a plan's photo words lead with (AGL-3769): its first word that
|
|
522
683
|
* is not filler, with the place or person words that follow it — "bakery" of
|
|
@@ -535,9 +696,26 @@ export declare function aiStockPhotoWordsSubject(photoWords: string): string;
|
|
|
535
696
|
* its business named in English, else its plan's photo words' subject, else
|
|
536
697
|
* its kind of site), every other site by its business type. One reading for
|
|
537
698
|
* every slot of every source — hero, background, gallery, card, product,
|
|
538
|
-
* post — so no slot searches by words another slot is held against.
|
|
699
|
+
* post — so no slot searches by words another slot is held against. A site for
|
|
700
|
+
* adults alone ({@link aiStockAdultsOnly}) is told so, whatever its world.
|
|
701
|
+
*/
|
|
702
|
+
export declare function aiStockSourceTerms(input: Pick<AiLayoutStockPhotoSourceInput, 'business' | 'language' | 'photoWords' | 'kindWords' | 'name' | 'audience' | 'kind'>): AiStockSiteTerms;
|
|
703
|
+
/**
|
|
704
|
+
* Whether a business type is only an abbreviation the libraries do not know
|
|
705
|
+
* (AGL-3856): "LMS", "CRM", "B2B". Its letters are no world to search.
|
|
706
|
+
*/
|
|
707
|
+
export declare function aiStockIsAbbreviation(businessType: string): boolean;
|
|
708
|
+
/** The kind of site a business's name or audience names ({@link NAMED_KINDS}), or empty. */
|
|
709
|
+
export declare function aiStockNamedKind(text: string): string;
|
|
710
|
+
/** What a kind of site's pictures are searched and judged by ({@link KIND_SUBJECTS}); `null` for a kind not listed. */
|
|
711
|
+
export declare function aiStockKindTerms(kind: string): AiStockSiteTerms | null;
|
|
712
|
+
/**
|
|
713
|
+
* The first word of a text that names a craft {@link CRAFT_KIN} lists, as
|
|
714
|
+
* its table writes it: "gym" of "Synchronicity Gym", "law" of "Hartwell
|
|
715
|
+
* Reyes Family Law". Empty where it names none, so a name that is only a
|
|
716
|
+
* name ("Hillside") never becomes a world.
|
|
539
717
|
*/
|
|
540
|
-
export declare function
|
|
718
|
+
export declare function aiStockListedCraft(text: string): string;
|
|
541
719
|
/**
|
|
542
720
|
* The source for one page, or `null` when this deployment has no stock
|
|
543
721
|
* photo library or no media door, which leaves every slot to the starters.
|