@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
|
@@ -38,6 +38,7 @@ import { aiJobPublishesSite, aiMergeSitePublish, aiPublishGuidedSite, aiRestoreG
|
|
|
38
38
|
import { AI_SITE_CONTENT_INPUT, AI_SITE_POST_BUDGET, AI_SITE_POSTS, AI_SITE_POSTS_LABEL, AI_SITE_PRODUCTS_LABEL, AI_SITE_PRODUCTS_PRICE_NOTE, aiPublishSitePosts, aiSiteContentBriefLines, aiSiteContentPart, aiSiteContentRefusal, aiSiteListings, aiSiteProductsBriefLine, createAiSiteProductsRunner, runAiSitePostsUnit } from "./ai-job-site-content.js";
|
|
39
39
|
import { dropPluginSiteCache } from "@aglyn/aglyn/plugin-manager/plugin-site-cache";
|
|
40
40
|
import { AI_SITE_DATASET_BUDGET, AI_SITE_DATASET_INPUT, AI_SITE_DATASETS_MAX, aiSiteDatasetBriefLines, aiSiteDatasetInputOf, aiSiteDatasetListings, aiSiteDatasetPlacedPhotos, aiSiteDatasetRefusal, aiSitePlanDatasets, aiSiteRecordTemplateOf, runAiSiteDatasetUnit } from "./ai-job-site-datasets.js";
|
|
41
|
+
import { AI_SITE_EVENT_INPUT, AI_SITE_EVENT_LABEL, AI_SITE_EVENT_MINIMUM_MS, AI_SITE_EVENTS_MAX, aiSiteEventListings, aiSiteEventRefusal, aiSitePlanEvents, runAiSiteEventUnit } from "./ai-job-site-events.js";
|
|
41
42
|
import { AI_SITE_LOOK_BUDGET, aiRunSiteLook } from "./ai-job-site-look.js";
|
|
42
43
|
import { AI_SITE_STORE_PAGES_INPUT, aiSiteStorePagesRefusal, runAiSiteStorePagesUnit } from "./ai-job-site-store-pages.js";
|
|
43
44
|
import { AI_SITE_STORE_LINKS_INPUT, AI_SITE_STORE_PAGES_LABEL, AI_SITE_STORE_PAGES_NOTE, aiStoreFrameLinks, aiStorePagesOfPlan } from "../model/ai-site-store-pages.js";
|
|
@@ -88,6 +89,12 @@ import { aiJobStepRunMinimumMs, aiJobStepRunnerFor, registerAiJobStep, registerA
|
|
|
88
89
|
jobKind: 'text',
|
|
89
90
|
resource: 'draft'
|
|
90
91
|
},
|
|
92
|
+
// An event-led start's first events (AGL-3755): the events-calendar
|
|
93
|
+
// plugin's writer keeps each, run by the scaffold's own pass.
|
|
94
|
+
event: {
|
|
95
|
+
jobKind: 'text',
|
|
96
|
+
resource: 'draft'
|
|
97
|
+
},
|
|
91
98
|
// The scaffold's own runner writes them, by code (`ai-job-site-store-pages.ts`).
|
|
92
99
|
store: {
|
|
93
100
|
jobKind: 'text',
|
|
@@ -138,7 +145,7 @@ export const AI_SITE_NO_PLAN_COPY = 'This site job has no confirmed plan to buil
|
|
|
138
145
|
* (one a pass, the largest part) and a welcome email — with nothing to
|
|
139
146
|
* spare, so a runner that never finishes is still bounded while a real site
|
|
140
147
|
* is not.
|
|
141
|
-
*/ export const AI_SITE_MAX_PASSES = AI_SITE_PAGES.max * (AI_SITE_MAX_SECTIONS + 1) + CREATION_UNITS.length + AI_SITE_DATASETS_MAX + AI_SITE_POSTS + 2;
|
|
148
|
+
*/ export const AI_SITE_MAX_PASSES = AI_SITE_PAGES.max * (AI_SITE_MAX_SECTIONS + 1) + CREATION_UNITS.length + AI_SITE_DATASETS_MAX + AI_SITE_EVENTS_MAX + AI_SITE_POSTS + 2;
|
|
142
149
|
/**
|
|
143
150
|
* The units a plan implies, in build order: the palette first, because a
|
|
144
151
|
* member reads it while the pages are still building; then the layout every
|
|
@@ -200,6 +207,16 @@ export const AI_SITE_NO_PLAN_COPY = 'This site job has no confirmed plan to buil
|
|
|
200
207
|
label: AI_SITE_PRODUCTS_LABEL
|
|
201
208
|
}));
|
|
202
209
|
}
|
|
210
|
+
// An event-led start's first events (AGL-3755), before the pages that list them.
|
|
211
|
+
aiSitePlanEvents(plan).forEach((item, index)=>{
|
|
212
|
+
units.push(_extends({
|
|
213
|
+
kind: 'event'
|
|
214
|
+
}, UNIT_KINDS.event, {
|
|
215
|
+
slot: `v${index}`,
|
|
216
|
+
item,
|
|
217
|
+
label: item.name || AI_SITE_EVENT_LABEL
|
|
218
|
+
}));
|
|
219
|
+
});
|
|
203
220
|
plan.screens.forEach((screen, index)=>{
|
|
204
221
|
units.push(_extends({
|
|
205
222
|
kind: 'page'
|
|
@@ -376,9 +393,9 @@ export const AI_SITE_NO_PLAN_COPY = 'This site job has no confirmed plan to buil
|
|
|
376
393
|
* palette change — and a unit whose plan recorded no id are named by this
|
|
377
394
|
* job's id and the unit's slot, the name every draft of such a plan has.
|
|
378
395
|
*/ export function aiSiteUnitJobId(job, unit) {
|
|
379
|
-
var _ref, _ref1;
|
|
380
|
-
var _unit_creation, _unit_screen;
|
|
381
|
-
const recorded = (_ref = (_ref1 = (_unit_creation = unit.creation) == null ? void 0 : _unit_creation.id) != null ?
|
|
396
|
+
var _ref, _ref1, _ref2;
|
|
397
|
+
var _unit_creation, _unit_screen, _unit_item;
|
|
398
|
+
const recorded = (_ref = (_ref1 = (_ref2 = (_unit_creation = unit.creation) == null ? void 0 : _unit_creation.id) != null ? _ref2 : (_unit_screen = unit.screen) == null ? void 0 : _unit_screen.id) != null ? _ref1 : (_unit_item = unit.item) == null ? void 0 : _unit_item.id) != null ? _ref : unit.kind === 'email' ? aiRecordedJobDraftId(job, 'email') : null;
|
|
382
399
|
return recorded || `${job.$id}-${unit.slot}`;
|
|
383
400
|
}
|
|
384
401
|
/**
|
|
@@ -491,7 +508,7 @@ export const AI_SITE_NO_PLAN_COPY = 'This site job has no confirmed plan to buil
|
|
|
491
508
|
// ids are minted on the plan, and the platform writes the header's links.
|
|
492
509
|
// A page is told them too, so its buttons may go to a page built after it.
|
|
493
510
|
if (job.kind === 'site' && (unit.kind === 'layout' || unit.kind === 'page')) {
|
|
494
|
-
var _job_outputs4, _job_outputs5;
|
|
511
|
+
var _job_outputs4, _job_outputs5, _job_outputs6;
|
|
495
512
|
var _aiSiteKindOfInputs, _aiSiteKindOfInputs1;
|
|
496
513
|
// A guided start links every page the person asked for (AGL-3660), and
|
|
497
514
|
// the blog its first posts are written into, by its path, second after
|
|
@@ -551,6 +568,11 @@ export const AI_SITE_NO_PLAN_COPY = 'This site job has no confirmed plan to buil
|
|
|
551
568
|
datasets: aiSitePlanDatasets(plan),
|
|
552
569
|
screens: merged.screens,
|
|
553
570
|
delivered
|
|
571
|
+
}), // The events this start drafted, in the section that names them (AGL-3755).
|
|
572
|
+
...aiSiteEventListings({
|
|
573
|
+
outputs: (_job_outputs6 = job.outputs) != null ? _job_outputs6 : [],
|
|
574
|
+
items: aiSitePlanEvents(plan),
|
|
575
|
+
screens: merged.screens
|
|
554
576
|
}));
|
|
555
577
|
if (listings.length) unitInputs[AI_LAYOUT_LISTINGS_INPUT] = listings;
|
|
556
578
|
// A paid store's header links its account beside the cart, and its footer
|
|
@@ -565,10 +587,10 @@ export const AI_SITE_NO_PLAN_COPY = 'This site job has no confirmed plan to buil
|
|
|
565
587
|
// A site's pages and its layout are designed in the layout language and
|
|
566
588
|
// compiled (AGL-3660), and a page is told which page places the site's form.
|
|
567
589
|
if (unit.kind === 'layout' || unit.kind === 'page') {
|
|
568
|
-
var
|
|
590
|
+
var _job_outputs7;
|
|
569
591
|
var _look_proposal;
|
|
570
592
|
// The look designed first (AGL-3660): its header arrangement and band rhythm.
|
|
571
|
-
const look = ((
|
|
593
|
+
const look = ((_job_outputs7 = job.outputs) != null ? _job_outputs7 : []).find((output)=>output.resource === 'theme' && output.id === 'look');
|
|
572
594
|
const style = look == null ? void 0 : (_look_proposal = look.proposal) == null ? void 0 : _look_proposal['style'];
|
|
573
595
|
if (style) unitInputs['siteStyle'] = {
|
|
574
596
|
headerAlign: style['headerAlign'],
|
|
@@ -580,11 +602,11 @@ export const AI_SITE_NO_PLAN_COPY = 'This site job has no confirmed plan to buil
|
|
|
580
602
|
if (formPage) unitInputs[AI_LAYOUT_FORM_PAGE_INPUT] = formPage;
|
|
581
603
|
}
|
|
582
604
|
if (unit.kind === 'posts') {
|
|
583
|
-
var
|
|
605
|
+
var _job_outputs8, _inputs_businessName;
|
|
584
606
|
// The posts already written (one a pass), the addresses the site's own
|
|
585
607
|
// pages answer at, and the byline the person gave (AGL-3676).
|
|
586
608
|
const posts = {
|
|
587
|
-
written: ((
|
|
609
|
+
written: ((_job_outputs8 = job.outputs) != null ? _job_outputs8 : []).filter((output)=>output.resource === 'entry').map((output)=>({
|
|
588
610
|
id: output.id,
|
|
589
611
|
title: output.label
|
|
590
612
|
})),
|
|
@@ -596,6 +618,8 @@ export const AI_SITE_NO_PLAN_COPY = 'This site job has no confirmed plan to buil
|
|
|
596
618
|
unitInputs[AI_SITE_CONTENT_INPUT] = posts;
|
|
597
619
|
}
|
|
598
620
|
if (unit.kind === 'products') unitInputs['target'] = 'catalog';
|
|
621
|
+
// The event an event unit drafts (AGL-3755).
|
|
622
|
+
if (unit.kind === 'event' && unit.item) unitInputs[AI_SITE_EVENT_INPUT] = unit.item;
|
|
599
623
|
// Where the plan lists a dataset, which its design reads, and the form
|
|
600
624
|
// that writes to it (AGL-3616).
|
|
601
625
|
if (unit.kind === 'dataset' && unit.creation) {
|
|
@@ -845,7 +869,7 @@ export const aiSiteJobAdmission = createAiSiteJobAdmission();
|
|
|
845
869
|
}).map((unit)=>unit.slot);
|
|
846
870
|
return units.map((unit)=>_extends({
|
|
847
871
|
slot: unit.slot,
|
|
848
|
-
op: unit.kind === 'theme' || unit.kind === 'posts' || unit.kind === 'products' || unit.kind === 'dataset' || unit.kind === 'store' ? unit.kind : unit.jobKind,
|
|
872
|
+
op: unit.kind === 'theme' || unit.kind === 'posts' || unit.kind === 'products' || unit.kind === 'dataset' || unit.kind === 'event' || unit.kind === 'store' ? unit.kind : unit.jobKind,
|
|
849
873
|
label: unit.label
|
|
850
874
|
}, unit.creation ? {
|
|
851
875
|
creation: unit.creation
|
|
@@ -891,23 +915,24 @@ export const aiSiteJobAdmission = createAiSiteJobAdmission();
|
|
|
891
915
|
return aiSiteJobUnits(plan, {
|
|
892
916
|
welcomeEmail: aiSiteWelcomeEmail(inputs, freeTaste),
|
|
893
917
|
content: aiSiteContentPart(job.inputs, freeTaste)
|
|
894
|
-
}).filter((unit)=>unit.kind === 'store' && ledgered || unit.kind === 'theme' || unit.kind === 'posts' || unit.kind === 'dataset' || unit.kind !== 'store' && runnerFor(unit.jobKind));
|
|
918
|
+
}).filter((unit)=>unit.kind === 'store' && ledgered || unit.kind === 'theme' || unit.kind === 'posts' || unit.kind === 'dataset' || unit.kind === 'event' || unit.kind !== 'store' && runnerFor(unit.jobKind));
|
|
895
919
|
}
|
|
896
920
|
export function createAiJobSiteStep(deps = {}) {
|
|
897
|
-
var _deps_runnerFor, _deps_readNodes, _deps_publish, _deps_look, _deps_contentRefusal, _deps_datasetRefusal, _deps_storePagesRefusal, _deps_publishPosts, _deps_dropCache, _deps_restoreBlogEntry;
|
|
921
|
+
var _deps_runnerFor, _deps_readNodes, _deps_publish, _deps_look, _deps_contentRefusal, _deps_datasetRefusal, _deps_eventRefusal, _deps_storePagesRefusal, _deps_publishPosts, _deps_dropCache, _deps_restoreBlogEntry;
|
|
898
922
|
const runnerFor = (_deps_runnerFor = deps.runnerFor) != null ? _deps_runnerFor : aiJobStepRunnerFor;
|
|
899
923
|
const readNodes = (_deps_readNodes = deps.readNodes) != null ? _deps_readNodes : readAiDraftNodes;
|
|
900
924
|
const publish = (_deps_publish = deps.publish) != null ? _deps_publish : aiPublishGuidedSite;
|
|
901
925
|
const look = (_deps_look = deps.look) != null ? _deps_look : aiRunSiteLook;
|
|
902
926
|
const contentRefusal = (_deps_contentRefusal = deps.contentRefusal) != null ? _deps_contentRefusal : aiSiteContentRefusal;
|
|
903
927
|
const datasetRefusal = (_deps_datasetRefusal = deps.datasetRefusal) != null ? _deps_datasetRefusal : aiSiteDatasetRefusal;
|
|
928
|
+
const eventRefusal = (_deps_eventRefusal = deps.eventRefusal) != null ? _deps_eventRefusal : aiSiteEventRefusal;
|
|
904
929
|
const storePagesRefusal = (_deps_storePagesRefusal = deps.storePagesRefusal) != null ? _deps_storePagesRefusal : aiSiteStorePagesRefusal;
|
|
905
930
|
const publishPosts = (_deps_publishPosts = deps.publishPosts) != null ? _deps_publishPosts : aiPublishSitePosts;
|
|
906
931
|
const dropCache = (_deps_dropCache = deps.dropCache) != null ? _deps_dropCache : dropPluginSiteCache;
|
|
907
932
|
const restoreBlogEntry = (_deps_restoreBlogEntry = deps.restoreBlogEntry) != null ? _deps_restoreBlogEntry : aiRestoreGuidedBlogEntry;
|
|
908
933
|
return async (context)=>{
|
|
909
|
-
var _ref, _job_outputs, _deps_posts, _deps_products, _deps_dataset, _deps_storePages, _job_outputs1;
|
|
910
|
-
var _job_items, _rows_get, _rows_get1, _rows_get2;
|
|
934
|
+
var _ref, _job_outputs, _deps_posts, _deps_products, _deps_dataset, _deps_event, _deps_storePages, _job_outputs1;
|
|
935
|
+
var _job_items, _rows_get, _rows_get1, _rows_get2, _rows_get3;
|
|
911
936
|
const { job } = context;
|
|
912
937
|
// The scaffold asks no model of its own. What it names where it spends
|
|
913
938
|
// nothing is the model its plan ran on, which is the one exchange this
|
|
@@ -1113,7 +1138,7 @@ export function createAiJobSiteStep(deps = {}) {
|
|
|
1113
1138
|
const catalog = unit.kind === 'products' ? runnerFor('products') : undefined;
|
|
1114
1139
|
const runner = unit.kind === 'theme' ? (lookContext)=>look(lookContext, lookContext.job) : unit.kind === 'posts' ? (_deps_posts = deps.posts) != null ? _deps_posts : runAiSitePostsUnit : unit.kind === 'products' ? (_deps_products = deps.products) != null ? _deps_products : catalog ? createAiSiteProductsRunner({
|
|
1115
1140
|
catalog
|
|
1116
|
-
}) : undefined : unit.kind === 'dataset' ? (_deps_dataset = deps.dataset) != null ? _deps_dataset : runAiSiteDatasetUnit : unit.kind === 'store' ? (_deps_storePages = deps.storePages) != null ? _deps_storePages : runAiSiteStorePagesUnit : runnerFor(unit.jobKind);
|
|
1141
|
+
}) : undefined : unit.kind === 'dataset' ? (_deps_dataset = deps.dataset) != null ? _deps_dataset : runAiSiteDatasetUnit : unit.kind === 'event' ? (_deps_event = deps.event) != null ? _deps_event : runAiSiteEventUnit : unit.kind === 'store' ? (_deps_storePages = deps.storePages) != null ? _deps_storePages : runAiSiteStorePagesUnit : runnerFor(unit.jobKind);
|
|
1117
1142
|
if (!runner) return _extends({}, aiUnspentOutcome(model), init);
|
|
1118
1143
|
const othersOpen = ledgerUnits.some((one)=>{
|
|
1119
1144
|
var _rows_get;
|
|
@@ -1192,9 +1217,29 @@ export function createAiJobSiteStep(deps = {}) {
|
|
|
1192
1217
|
note: `Not built: ${refusal}`
|
|
1193
1218
|
}));
|
|
1194
1219
|
}
|
|
1220
|
+
// An event asks the same (AGL-3755): the events plugin runs here, and its
|
|
1221
|
+
// writer admits this member now.
|
|
1222
|
+
if (unit.kind === 'event' && ((_rows_get2 = rows.get(unit.slot)) == null ? void 0 : _rows_get2.status) !== 'running') {
|
|
1223
|
+
const refusal = await eventRefusal(_extends({}, context, {
|
|
1224
|
+
job
|
|
1225
|
+
})).catch((error)=>{
|
|
1226
|
+
console.error('ai site event admission failed', {
|
|
1227
|
+
orgId: job.orgId,
|
|
1228
|
+
jobId: job.$id,
|
|
1229
|
+
slot: unit.slot,
|
|
1230
|
+
error
|
|
1231
|
+
});
|
|
1232
|
+
return AI_SITE_UNIT_EMPTY_COPY;
|
|
1233
|
+
});
|
|
1234
|
+
if (refusal) return closing(settle({
|
|
1235
|
+
slot: unit.slot,
|
|
1236
|
+
status: 'skipped',
|
|
1237
|
+
note: `Not built: ${refusal}`
|
|
1238
|
+
}));
|
|
1239
|
+
}
|
|
1195
1240
|
// The store's own pages ask the same (AGL-3676): a plan with a store, the
|
|
1196
1241
|
// commerce plugin here, and a member who may edit the site's pages.
|
|
1197
|
-
if (unit.kind === 'store' && ((
|
|
1242
|
+
if (unit.kind === 'store' && ((_rows_get3 = rows.get(unit.slot)) == null ? void 0 : _rows_get3.status) !== 'running') {
|
|
1198
1243
|
const refusal = await storePagesRefusal(_extends({}, context, {
|
|
1199
1244
|
job
|
|
1200
1245
|
})).catch((error)=>{
|
|
@@ -1342,7 +1387,7 @@ export const runAiJobSiteStep = createAiJobSiteStep();
|
|
|
1342
1387
|
const units = aiSiteJobUnits(plan, {
|
|
1343
1388
|
welcomeEmail: inputs.welcomeEmail,
|
|
1344
1389
|
content: aiSiteContentPart(job.inputs, false)
|
|
1345
|
-
}).filter((unit)=>(unit.kind === 'theme' || unit.kind === 'posts' || unit.kind === 'dataset' || unit.kind === 'store' || aiJobStepRunnerFor(unit.jobKind)) && (!owed.size || owed.has(unit.slot)));
|
|
1390
|
+
}).filter((unit)=>(unit.kind === 'theme' || unit.kind === 'posts' || unit.kind === 'dataset' || unit.kind === 'event' || unit.kind === 'store' || aiJobStepRunnerFor(unit.jobKind)) && (!owed.size || owed.has(unit.slot)));
|
|
1346
1391
|
const outputs = (_job_outputs = job.outputs) != null ? _job_outputs : [];
|
|
1347
1392
|
const ledger = ((_job_items1 = job.items) == null ? void 0 : _job_items1.length) ? job.items : aiSiteInitialLedger(units, outputs);
|
|
1348
1393
|
const next = aiBuildNextUnit(aiSiteLedgerUnits(units), ledger);
|
|
@@ -1351,6 +1396,7 @@ export const runAiJobSiteStep = createAiJobSiteStep();
|
|
|
1351
1396
|
if (unit.kind === 'theme') return AI_SITE_LOOK_BUDGET.minimumMs;
|
|
1352
1397
|
if (unit.kind === 'posts') return AI_SITE_POST_BUDGET.minimumMs;
|
|
1353
1398
|
if (unit.kind === 'dataset') return AI_SITE_DATASET_BUDGET.minimumMs;
|
|
1399
|
+
if (unit.kind === 'event') return AI_SITE_EVENT_MINIMUM_MS;
|
|
1354
1400
|
// The store's pages ask no model: five draft writes (AGL-3676).
|
|
1355
1401
|
if (unit.kind === 'store') return AI_SITE_STORE_PAGES_MINIMUM_MS;
|
|
1356
1402
|
return aiJobStepRunMinimumMs(aiSiteUnitJob(job, unit, aiBuildBuiltRefs(aiSiteLedgerUnits(units), ledger, outputs)));
|