@aglyn/plugins-ai 1.0.0-beta.246 → 1.0.0-beta.249
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/activity/ai-activity-actions.js +5 -1
- package/src/lib/activity/ai-activity-actions.js.map +1 -1
- package/src/lib/components/ai-job-links.js +14 -0
- package/src/lib/components/ai-job-links.js.map +1 -1
- package/src/lib/components/ai-site-start-card.component.d.ts +1 -1
- package/src/lib/components/ai-site-start-card.component.js +92 -19
- package/src/lib/components/ai-site-start-card.component.js.map +1 -1
- package/src/lib/declarations.server.js +12 -0
- package/src/lib/declarations.server.js.map +1 -1
- package/src/lib/jobs/ai-build-capabilities.js +56 -2
- package/src/lib/jobs/ai-build-capabilities.js.map +1 -1
- package/src/lib/jobs/ai-job-build-step.d.ts +3 -8
- package/src/lib/jobs/ai-job-build-step.js +49 -12
- package/src/lib/jobs/ai-job-build-step.js.map +1 -1
- package/src/lib/jobs/ai-job-form-dataset.d.ts +8 -5
- package/src/lib/jobs/ai-job-form-dataset.js +28 -10
- package/src/lib/jobs/ai-job-form-dataset.js.map +1 -1
- package/src/lib/jobs/ai-job-form-step.d.ts +20 -4
- package/src/lib/jobs/ai-job-form-step.js +98 -28
- package/src/lib/jobs/ai-job-form-step.js.map +1 -1
- package/src/lib/jobs/ai-job-layout-language.d.ts +6 -2
- package/src/lib/jobs/ai-job-layout-language.js +16 -5
- package/src/lib/jobs/ai-job-layout-language.js.map +1 -1
- package/src/lib/jobs/ai-job-layout-step.js +4 -1
- package/src/lib/jobs/ai-job-layout-step.js.map +1 -1
- package/src/lib/jobs/ai-job-media-step.d.ts +239 -0
- package/src/lib/jobs/ai-job-media-step.js +610 -0
- package/src/lib/jobs/ai-job-media-step.js.map +1 -0
- package/src/lib/jobs/ai-job-page-language.d.ts +2 -0
- package/src/lib/jobs/ai-job-page-language.js +9 -0
- package/src/lib/jobs/ai-job-page-language.js.map +1 -1
- package/src/lib/jobs/ai-job-page-sections.js +4 -3
- package/src/lib/jobs/ai-job-page-sections.js.map +1 -1
- package/src/lib/jobs/ai-job-page-step.js +3 -2
- package/src/lib/jobs/ai-job-page-step.js.map +1 -1
- package/src/lib/jobs/ai-job-plan-step.d.ts +10 -1
- package/src/lib/jobs/ai-job-plan-step.js +73 -15
- package/src/lib/jobs/ai-job-plan-step.js.map +1 -1
- package/src/lib/jobs/ai-job-settings-step.d.ts +0 -4
- package/src/lib/jobs/ai-job-settings-step.js +2 -7
- package/src/lib/jobs/ai-job-settings-step.js.map +1 -1
- package/src/lib/jobs/ai-job-site-content.d.ts +2 -2
- package/src/lib/jobs/ai-job-site-content.js +5 -3
- package/src/lib/jobs/ai-job-site-content.js.map +1 -1
- package/src/lib/jobs/ai-job-site-datasets.d.ts +1 -1
- package/src/lib/jobs/ai-job-site-datasets.js +3 -2
- package/src/lib/jobs/ai-job-site-datasets.js.map +1 -1
- package/src/lib/jobs/ai-job-site-events.d.ts +148 -0
- package/src/lib/jobs/ai-job-site-events.js +313 -0
- package/src/lib/jobs/ai-job-site-events.js.map +1 -0
- package/src/lib/jobs/ai-job-site-step.d.ts +9 -3
- package/src/lib/jobs/ai-job-site-step.js +63 -17
- package/src/lib/jobs/ai-job-site-step.js.map +1 -1
- package/src/lib/jobs/ai-job-tracking-step.d.ts +184 -0
- package/src/lib/jobs/ai-job-tracking-step.js +501 -0
- package/src/lib/jobs/ai-job-tracking-step.js.map +1 -0
- package/src/lib/jobs/ai-layout-stock-photos.d.ts +41 -0
- package/src/lib/jobs/ai-layout-stock-photos.js +71 -3
- package/src/lib/jobs/ai-layout-stock-photos.js.map +1 -1
- package/src/lib/jobs/ai-site-publish.js +2 -3
- package/src/lib/jobs/ai-site-publish.js.map +1 -1
- package/src/lib/jobs/ai-stock-photo-picker.d.ts +24 -0
- package/src/lib/jobs/ai-stock-photo-picker.js +108 -0
- package/src/lib/jobs/ai-stock-photo-picker.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-jazz-events-build-plan-recording.d.ts +37 -0
- package/src/lib/jobs/fixtures/ai-jazz-events-build-plan-recording.js +47 -0
- package/src/lib/jobs/fixtures/ai-jazz-events-build-plan-recording.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3760-recordings.d.ts +21 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3760-recordings.js +128 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3760-recordings.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3769-recordings.d.ts +21 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3769-recordings.js +126 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3769-recordings.js.map +1 -0
- package/src/lib/layout-language/ai-layout-compiler.d.ts +10 -4
- package/src/lib/layout-language/ai-layout-compiler.js +38 -19
- package/src/lib/layout-language/ai-layout-compiler.js.map +1 -1
- package/src/lib/layout-language/ai-layout-frame.d.ts +7 -5
- package/src/lib/layout-language/ai-layout-frame.js +12 -9
- package/src/lib/layout-language/ai-layout-frame.js.map +1 -1
- package/src/lib/layout-language/ai-layout-gaps.js +3 -1
- package/src/lib/layout-language/ai-layout-gaps.js.map +1 -1
- package/src/lib/layout-language/ai-layout-labels.d.ts +70 -0
- package/src/lib/layout-language/ai-layout-labels.js +162 -0
- package/src/lib/layout-language/ai-layout-labels.js.map +1 -0
- package/src/lib/layout-language/ai-layout-links.js +5 -2
- package/src/lib/layout-language/ai-layout-links.js.map +1 -1
- package/src/lib/layout-language/ai-layout-listings.d.ts +14 -1
- package/src/lib/layout-language/ai-layout-listings.js +32 -5
- package/src/lib/layout-language/ai-layout-listings.js.map +1 -1
- package/src/lib/model/ai-build-event-page.d.ts +70 -0
- package/src/lib/model/ai-build-event-page.js +145 -0
- package/src/lib/model/ai-build-event-page.js.map +1 -0
- package/src/lib/model/ai-build-job.d.ts +21 -0
- package/src/lib/model/ai-build-job.js +39 -0
- package/src/lib/model/ai-build-job.js.map +1 -1
- package/src/lib/model/ai-build-plan.d.ts +25 -14
- package/src/lib/model/ai-build-plan.js +33 -23
- package/src/lib/model/ai-build-plan.js.map +1 -1
- package/src/lib/model/ai-job-activity.js +3 -1
- package/src/lib/model/ai-job-activity.js.map +1 -1
- package/src/lib/model/ai-jobs.types.d.ts +10 -2
- package/src/lib/model/ai-jobs.types.js +3 -1
- package/src/lib/model/ai-jobs.types.js.map +1 -1
- package/src/lib/model/ai-plan-capabilities.d.ts +8 -0
- package/src/lib/model/ai-plan-capabilities.js.map +1 -1
- package/src/lib/model/ai-site-inventory.d.ts +2 -0
- package/src/lib/model/ai-site-inventory.js +5 -0
- package/src/lib/model/ai-site-inventory.js.map +1 -1
- package/src/lib/model/ai-site-job.d.ts +2 -2
- package/src/lib/model/ai-site-job.js +3 -3
- package/src/lib/model/ai-site-job.js.map +1 -1
- package/src/lib/runtime/ai-doctrine-validators.d.ts +25 -3
- package/src/lib/runtime/ai-doctrine-validators.js +53 -6
- 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 +13 -9
- package/src/lib/runtime/ai-doctrine.js.map +1 -1
- package/src/lib/runtime/ai-eval-live.d.ts +1 -1
- package/src/lib/runtime/ai-eval-live.js +1 -1
- package/src/lib/runtime/ai-eval-live.js.map +1 -1
- package/src/lib/runtime/ai-palette.d.ts +3 -1
- package/src/lib/runtime/ai-palette.generated.js +498 -10
- package/src/lib/runtime/ai-palette.generated.js.map +1 -1
- package/src/lib/runtime/ai-palette.js +5 -3
- package/src/lib/runtime/ai-palette.js.map +1 -1
- package/src/lib/runtime/ai-template-examples.js +8 -2
- package/src/lib/runtime/ai-template-examples.js.map +1 -1
- package/src/lib/server.js +8 -0
- package/src/lib/server.js.map +1 -1
|
@@ -25,6 +25,7 @@ import { AI_LAYOUT_GROUP_KINDS, AI_LAYOUT_MAX_ITEMS } from "./ai-layout-language
|
|
|
25
25
|
import { aiLayoutDesignChoices, aiLayoutFamily, aiLayoutGroupVariant } from "./ai-layout-design.js";
|
|
26
26
|
import { AI_LAYOUT_FEATURED_RECORDS, AI_LAYOUT_LISTING_ELEMENTS, aiLayoutListingAt, aiLayoutRecordHref } from "./ai-layout-listings.js";
|
|
27
27
|
import { aiStorefrontItemIcons } from "./ai-layout-storefront.js";
|
|
28
|
+
import { AI_LAYOUT_LABELS_EN, aiLayoutLabel } from "./ai-layout-labels.js";
|
|
28
29
|
import { aiLayoutRenamedLabel, aiLayoutResolveLink } from "./ai-layout-links.js";
|
|
29
30
|
import { aiLayoutSpans, AI_LAYOUT_FRAMES, AiLayoutTreeBuilder } from "./ai-layout-tree.js";
|
|
30
31
|
/**
|
|
@@ -2017,15 +2018,16 @@ function instances(scope, placed, items, perRow) {
|
|
|
2017
2018
|
'{{entry.coverImage}}'
|
|
2018
2019
|
];
|
|
2019
2020
|
/** The button under a featured band that opens the whole list, where the site has one and the design gave none. */ function listingAllButton(page, listing) {
|
|
2021
|
+
const language = page.options.language;
|
|
2020
2022
|
if (listing.kind === 'posts') return listing.href ? {
|
|
2021
2023
|
kind: 'button',
|
|
2022
|
-
text: '
|
|
2024
|
+
text: aiLayoutLabel('allPosts', language),
|
|
2023
2025
|
to: listing.href,
|
|
2024
2026
|
style: 'secondary'
|
|
2025
2027
|
} : null;
|
|
2026
2028
|
const index = listing.placements.find((placement)=>placement.role === 'index' && placement.screenId !== page.targets.pageId);
|
|
2027
2029
|
if (!index) return null;
|
|
2028
|
-
const text = listing.kind === 'tracks' ? '
|
|
2030
|
+
const text = aiLayoutLabel(listing.kind === 'tracks' ? 'allMusic' : listing.kind === 'events' ? 'allEvents' : listing.kind === 'records' ? 'seeAll' : 'shopAll', language);
|
|
2029
2031
|
return {
|
|
2030
2032
|
kind: 'button',
|
|
2031
2033
|
text,
|
|
@@ -2138,7 +2140,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2138
2140
|
container
|
|
2139
2141
|
], 'section', (_ref = (_page_options_sectionIds = page.options.sectionIds) == null ? void 0 : _page_options_sectionIds[index]) != null ? _ref : sectionIdOf(index));
|
|
2140
2142
|
}
|
|
2141
|
-
/** What a store's reviews are headed with where neither the design nor the plan says. */ export const AI_LAYOUT_REVIEWS_HEADING =
|
|
2143
|
+
/** What a store's reviews are headed with where neither the design nor the plan says. */ export const AI_LAYOUT_REVIEWS_HEADING = AI_LAYOUT_LABELS_EN.reviewsHeading;
|
|
2142
2144
|
/**
|
|
2143
2145
|
* A store's own customer reviews (AGL-3676): the commerce plugin's Product
|
|
2144
2146
|
* reviews in its store-wide scope, carrying the section's heading itself.
|
|
@@ -2151,7 +2153,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2151
2153
|
const { page, index, at } = scope;
|
|
2152
2154
|
const tree = page.tree;
|
|
2153
2155
|
const given = blocks.find((block)=>speaksHeading(scope, block));
|
|
2154
|
-
const heading = aiLayoutWords(given == null ? void 0 : given.text, 'heading', page.targets.facts) || aiLayoutFitText((_page_plan_sections_index = page.plan.sections[index]) == null ? void 0 : _page_plan_sections_index.name, 'heading') ||
|
|
2156
|
+
const heading = aiLayoutWords(given == null ? void 0 : given.text, 'heading', page.targets.facts) || aiLayoutFitText((_page_plan_sections_index = page.plan.sections[index]) == null ? void 0 : _page_plan_sections_index.name, 'heading') || aiLayoutLabel('reviewsHeading', page.options.language);
|
|
2155
2157
|
page.settled.push({
|
|
2156
2158
|
at,
|
|
2157
2159
|
what: "the store's own reviews placed: shown once shoppers leave them, never written for them"
|
|
@@ -2178,7 +2180,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2178
2180
|
container
|
|
2179
2181
|
], bandSx(scope.band), scope.band === 'dark');
|
|
2180
2182
|
}
|
|
2181
|
-
/** What a store's sign-up is headed with where neither the design nor the plan says. */ export const AI_LAYOUT_SIGNUP_HEADING =
|
|
2183
|
+
/** What a store's sign-up is headed with where neither the design nor the plan says. */ export const AI_LAYOUT_SIGNUP_HEADING = AI_LAYOUT_LABELS_EN.signupHeading;
|
|
2182
2184
|
/**
|
|
2183
2185
|
* A store's newsletter sign-up (AGL-3676): the design's heading and words
|
|
2184
2186
|
* beside the commerce plugin's Newsletter signup field, or over it on a
|
|
@@ -2196,7 +2198,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2196
2198
|
var _page_plan_sections_index;
|
|
2197
2199
|
flow.unshift({
|
|
2198
2200
|
kind: 'heading',
|
|
2199
|
-
text: ((_page_plan_sections_index = page.plan.sections[index]) == null ? void 0 : _page_plan_sections_index.name) ||
|
|
2201
|
+
text: ((_page_plan_sections_index = page.plan.sections[index]) == null ? void 0 : _page_plan_sections_index.name) || aiLayoutLabel('signupHeading', page.options.language)
|
|
2200
2202
|
});
|
|
2201
2203
|
}
|
|
2202
2204
|
page.settled.push({
|
|
@@ -2204,7 +2206,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2204
2206
|
what: "the store's newsletter sign-up placed"
|
|
2205
2207
|
});
|
|
2206
2208
|
const field = tree.add(AI_LAYOUT_LISTING_ELEMENTS.signup, {
|
|
2207
|
-
buttonLabel: '
|
|
2209
|
+
buttonLabel: aiLayoutLabel('subscribe', page.options.language)
|
|
2208
2210
|
}, null, null, 'signup');
|
|
2209
2211
|
noted(scope, [
|
|
2210
2212
|
field,
|
|
@@ -2338,9 +2340,10 @@ function listingSection(scope, blocks, placed) {
|
|
|
2338
2340
|
style: 'secondary'
|
|
2339
2341
|
});
|
|
2340
2342
|
}
|
|
2343
|
+
const text = aiLayoutLabel('shopAll', scope.page.options.language);
|
|
2341
2344
|
const shopAll = {
|
|
2342
2345
|
kind: 'button',
|
|
2343
|
-
text
|
|
2346
|
+
text,
|
|
2344
2347
|
to: `page:${shop}`,
|
|
2345
2348
|
style: 'primary'
|
|
2346
2349
|
};
|
|
@@ -2348,10 +2351,10 @@ function listingSection(scope, blocks, placed) {
|
|
|
2348
2351
|
else flow.splice(firstButton, 0, shopAll);
|
|
2349
2352
|
scope.page.settled.push({
|
|
2350
2353
|
at: scope.at,
|
|
2351
|
-
what: `the hero opens the shop: "${
|
|
2354
|
+
what: `the hero opens the shop: "${text}" leads its buttons`
|
|
2352
2355
|
});
|
|
2353
2356
|
}
|
|
2354
|
-
/** The button a storefront's hero opens its shop with. */ export const AI_LAYOUT_SHOP_ALL =
|
|
2357
|
+
/** The button a storefront's hero opens its shop with. */ export const AI_LAYOUT_SHOP_ALL = AI_LAYOUT_LABELS_EN.shopAll;
|
|
2355
2358
|
/**
|
|
2356
2359
|
* A storefront's reasons to buy as open columns, each led by an icon over its
|
|
2357
2360
|
* title and words (AGL-3676): the icon the design named for it, else one its
|
|
@@ -2423,6 +2426,22 @@ function listingSection(scope, blocks, placed) {
|
|
|
2423
2426
|
]);
|
|
2424
2427
|
return id;
|
|
2425
2428
|
}
|
|
2429
|
+
if (listing.kind === 'events') {
|
|
2430
|
+
// The site's published events (AGL-3755), each with its date, place and
|
|
2431
|
+
// cover: the section's heading is the model's, so the list adds none.
|
|
2432
|
+
id = tree.add(element, featured ? {
|
|
2433
|
+
maxItems: String(shown)
|
|
2434
|
+
} : null, null, null, 'events');
|
|
2435
|
+
page.settled.push({
|
|
2436
|
+
at: scope.at,
|
|
2437
|
+
what: 'the site’s events listed by the Event List'
|
|
2438
|
+
});
|
|
2439
|
+
noted(scope, [
|
|
2440
|
+
id,
|
|
2441
|
+
id
|
|
2442
|
+
]);
|
|
2443
|
+
return id;
|
|
2444
|
+
}
|
|
2426
2445
|
if (listing.kind === 'products') {
|
|
2427
2446
|
id = tree.add(element, _extends({
|
|
2428
2447
|
source: 'all',
|
|
@@ -2441,10 +2460,10 @@ function listingSection(scope, blocks, placed) {
|
|
|
2441
2460
|
quickAdd: true,
|
|
2442
2461
|
// A store that opens before its first products are in says so, with a
|
|
2443
2462
|
// way to hear when they land (AGL-3676): never placeholder products.
|
|
2444
|
-
emptyTitle:
|
|
2445
|
-
emptyText: listing.emptyAction ?
|
|
2463
|
+
emptyTitle: aiLayoutLabel('storeEmptyTitle', page.options.language),
|
|
2464
|
+
emptyText: aiLayoutLabel(listing.emptyAction ? 'storeEmptyText' : 'storeEmptyTextAlone', page.options.language)
|
|
2446
2465
|
}, listing.emptyAction ? {
|
|
2447
|
-
emptyActionLabel: listing.emptyAction.label,
|
|
2466
|
+
emptyActionLabel: listing.emptyAction.label === AI_LAYOUT_LABELS_EN.getInTouch ? aiLayoutLabel('getInTouch', page.options.language) : listing.emptyAction.label,
|
|
2448
2467
|
emptyActionHref: listing.emptyAction.href
|
|
2449
2468
|
} : {}), null, null, 'products');
|
|
2450
2469
|
} else if (listing.kind === 'records') {
|
|
@@ -2460,9 +2479,9 @@ function listingSection(scope, blocks, placed) {
|
|
|
2460
2479
|
return id;
|
|
2461
2480
|
}
|
|
2462
2481
|
/** What a store's Product grid says while the store lists nothing yet (AGL-3676). */ export const AI_LAYOUT_STORE_EMPTY = {
|
|
2463
|
-
title:
|
|
2464
|
-
text:
|
|
2465
|
-
/** Said where the site has no page to get in touch on. */ textAlone:
|
|
2482
|
+
title: AI_LAYOUT_LABELS_EN.storeEmptyTitle,
|
|
2483
|
+
text: AI_LAYOUT_LABELS_EN.storeEmptyText,
|
|
2484
|
+
/** Said where the site has no page to get in touch on. */ textAlone: AI_LAYOUT_LABELS_EN.storeEmptyTextAlone
|
|
2466
2485
|
};
|
|
2467
2486
|
/** The most posts a page of the site lists where it is the writing's own page. */ const COLLECTION_INDEX_POSTS = 9;
|
|
2468
2487
|
/** The blog's posts as the site's design lists them: a grid of covers, or a ruled list with the dates. */ function postsElement(scope, listing, limit) {
|
|
@@ -2494,7 +2513,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2494
2513
|
variant: 'body2'
|
|
2495
2514
|
}, muted(scope), null, 'postExcerpt');
|
|
2496
2515
|
const more = tree.add('muiScreenLink', {
|
|
2497
|
-
children: '
|
|
2516
|
+
children: aiLayoutLabel('readPost', page.options.language),
|
|
2498
2517
|
href: '{{entry.url}}',
|
|
2499
2518
|
renderAs: 'link',
|
|
2500
2519
|
color: 'inherit'
|
|
@@ -2566,7 +2585,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2566
2585
|
], 'posts');
|
|
2567
2586
|
}
|
|
2568
2587
|
// ── A dataset's records (AGL-3616) ───────────────────────────────────────
|
|
2569
|
-
/** The words of the link under each record's card to its own page (AGL-3727). */ export const AI_LAYOUT_RECORD_LINK_LABEL =
|
|
2588
|
+
/** The words of the link under each record's card to its own page (AGL-3727). */ export const AI_LAYOUT_RECORD_LINK_LABEL = AI_LAYOUT_LABELS_EN.viewDetails;
|
|
2570
2589
|
/** A field whose name says it is a record's kicker: its category, role, time or place. */ const RECORD_KICKER = /\b(category|categories|type|kind|role|title|position|section|course|date|dates|time|times|when|day|days|location|place|where|venue|city|duration|level|tag|tags)\b/i;
|
|
2571
2590
|
/** A field whose name says it is a record's words: its description, bio or answer. */ const RECORD_BODY = /\b(description|summary|details?|about|bio|biography|answer|text|notes?|body|blurb|overview|excerpt|ingredients|includes)\b/i;
|
|
2572
2591
|
/** A dataset of questions and answers, listed as a ruled list rather than cards. */ const RECORD_QUESTIONS = /\b(faqs?|questions?|q ?& ?a)\b/i;
|
|
@@ -2644,7 +2663,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2644
2663
|
borderRadius: 2
|
|
2645
2664
|
}, null, 'recordImage') : null;
|
|
2646
2665
|
const more = recordHref ? tree.add('muiScreenLink', {
|
|
2647
|
-
children:
|
|
2666
|
+
children: aiLayoutLabel('viewDetails', page.options.language),
|
|
2648
2667
|
href: recordHref,
|
|
2649
2668
|
renderAs: 'link',
|
|
2650
2669
|
color: 'inherit'
|