@aglyn/plugins-ai 1.0.0-beta.285 → 1.0.0-beta.288
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/nonprofit.webp +0 -0
- package/src/lib/assets/site-styles/professional.webp +0 -0
- package/src/lib/assets/site-styles/store.webp +0 -0
- package/src/lib/assets/site-styles/trades.webp +0 -0
- package/src/lib/components/ai-theme-proposal-card.component.js +12 -3
- package/src/lib/components/ai-theme-proposal-card.component.js.map +1 -1
- package/src/lib/declarations.js +5 -2
- package/src/lib/declarations.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.d.ts +3 -1
- package/src/lib/jobs/ai-build-capabilities.js +27 -2
- package/src/lib/jobs/ai-build-capabilities.js.map +1 -1
- package/src/lib/jobs/ai-business-profile-prefill.js +6 -3
- package/src/lib/jobs/ai-business-profile-prefill.js.map +1 -1
- package/src/lib/jobs/ai-image-reads.d.ts +59 -0
- package/src/lib/jobs/ai-image-reads.js +138 -0
- package/src/lib/jobs/ai-image-reads.js.map +1 -0
- package/src/lib/jobs/ai-job-build-step.d.ts +29 -0
- package/src/lib/jobs/ai-job-build-step.js +83 -12
- package/src/lib/jobs/ai-job-build-step.js.map +1 -1
- package/src/lib/jobs/ai-job-duplicate-step.d.ts +2 -1
- package/src/lib/jobs/ai-job-duplicate-step.js +6 -6
- package/src/lib/jobs/ai-job-duplicate-step.js.map +1 -1
- package/src/lib/jobs/ai-job-import-step.d.ts +4 -2
- package/src/lib/jobs/ai-job-import-step.js +15 -11
- package/src/lib/jobs/ai-job-import-step.js.map +1 -1
- package/src/lib/jobs/ai-job-insight-step.d.ts +10 -0
- package/src/lib/jobs/ai-job-insight-step.js +23 -5
- package/src/lib/jobs/ai-job-insight-step.js.map +1 -1
- package/src/lib/jobs/ai-job-layout-language.js +2 -1
- package/src/lib/jobs/ai-job-layout-language.js.map +1 -1
- package/src/lib/jobs/ai-job-media-step.d.ts +2 -1
- package/src/lib/jobs/ai-job-media-step.js +6 -8
- package/src/lib/jobs/ai-job-media-step.js.map +1 -1
- package/src/lib/jobs/ai-job-navigation-step.d.ts +2 -1
- package/src/lib/jobs/ai-job-navigation-step.js +7 -9
- package/src/lib/jobs/ai-job-navigation-step.js.map +1 -1
- package/src/lib/jobs/ai-job-page-language.js +7 -1
- package/src/lib/jobs/ai-job-page-language.js.map +1 -1
- package/src/lib/jobs/ai-job-page-sections.js +16 -3
- package/src/lib/jobs/ai-job-page-sections.js.map +1 -1
- package/src/lib/jobs/ai-job-page-step.js +9 -1
- package/src/lib/jobs/ai-job-page-step.js.map +1 -1
- package/src/lib/jobs/ai-job-plan-step.d.ts +30 -8
- package/src/lib/jobs/ai-job-plan-step.js +78 -13
- package/src/lib/jobs/ai-job-plan-step.js.map +1 -1
- package/src/lib/jobs/ai-job-privacy-step.d.ts +4 -2
- package/src/lib/jobs/ai-job-privacy-step.js +14 -15
- package/src/lib/jobs/ai-job-privacy-step.js.map +1 -1
- package/src/lib/jobs/ai-job-products-step.js +5 -3
- package/src/lib/jobs/ai-job-products-step.js.map +1 -1
- package/src/lib/jobs/ai-job-settings-step.d.ts +2 -1
- package/src/lib/jobs/ai-job-settings-step.js +7 -8
- package/src/lib/jobs/ai-job-settings-step.js.map +1 -1
- package/src/lib/jobs/ai-job-site-content.d.ts +34 -1
- package/src/lib/jobs/ai-job-site-content.js +67 -8
- package/src/lib/jobs/ai-job-site-content.js.map +1 -1
- package/src/lib/jobs/ai-job-site-datasets.d.ts +53 -3
- package/src/lib/jobs/ai-job-site-datasets.js +300 -30
- package/src/lib/jobs/ai-job-site-datasets.js.map +1 -1
- package/src/lib/jobs/ai-job-site-step.js +6 -3
- package/src/lib/jobs/ai-job-site-step.js.map +1 -1
- package/src/lib/jobs/ai-job-site-store-pages.js +3 -3
- package/src/lib/jobs/ai-job-site-store-pages.js.map +1 -1
- package/src/lib/jobs/ai-job-text-step.js +2 -1
- package/src/lib/jobs/ai-job-text-step.js.map +1 -1
- package/src/lib/jobs/ai-job-tracking-step.d.ts +2 -1
- package/src/lib/jobs/ai-job-tracking-step.js +7 -8
- package/src/lib/jobs/ai-job-tracking-step.js.map +1 -1
- package/src/lib/jobs/ai-jobs-beat.d.ts +11 -7
- package/src/lib/jobs/ai-jobs-beat.js +18 -8
- package/src/lib/jobs/ai-jobs-beat.js.map +1 -1
- package/src/lib/jobs/ai-jobs-notify.d.ts +66 -1
- package/src/lib/jobs/ai-jobs-notify.js +136 -3
- package/src/lib/jobs/ai-jobs-notify.js.map +1 -1
- package/src/lib/jobs/ai-layout-stock-photos.d.ts +155 -7
- package/src/lib/jobs/ai-layout-stock-photos.js +1517 -220
- package/src/lib/jobs/ai-layout-stock-photos.js.map +1 -1
- package/src/lib/jobs/ai-product-image.d.ts +14 -0
- package/src/lib/jobs/ai-product-image.js +73 -21
- package/src/lib/jobs/ai-product-image.js.map +1 -1
- package/src/lib/jobs/ai-theme-brand-inputs.d.ts +9 -1
- package/src/lib/jobs/ai-theme-brand-inputs.js +28 -2
- package/src/lib/jobs/ai-theme-brand-inputs.js.map +1 -1
- package/src/lib/jobs/fixtures/ai-site-agl4065-datasets.d.ts +175 -0
- package/src/lib/jobs/fixtures/ai-site-agl4065-datasets.js +601 -0
- package/src/lib/jobs/fixtures/ai-site-agl4065-datasets.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-site-agl4065-pages.d.ts +46 -0
- package/src/lib/jobs/fixtures/ai-site-agl4065-pages.js +2862 -0
- package/src/lib/jobs/fixtures/ai-site-agl4065-pages.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-site-agl4065-plans.d.ts +74 -0
- package/src/lib/jobs/fixtures/ai-site-agl4065-plans.js +888 -0
- package/src/lib/jobs/fixtures/ai-site-agl4065-plans.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-site-agl4092-datasets.d.ts +120 -0
- package/src/lib/jobs/fixtures/ai-site-agl4092-datasets.js +410 -0
- package/src/lib/jobs/fixtures/ai-site-agl4092-datasets.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl4065-judge.d.ts +29 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl4065-judge.js +81 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl4065-judge.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl4065-recordings.d.ts +87 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl4065-recordings.js +225 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl4065-recordings.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl4092-recordings.d.ts +26 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl4092-recordings.js +714 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl4092-recordings.js.map +1 -0
- package/src/lib/layout-language/ai-layout-compiler.d.ts +11 -0
- package/src/lib/layout-language/ai-layout-compiler.js +194 -18
- package/src/lib/layout-language/ai-layout-compiler.js.map +1 -1
- package/src/lib/layout-language/ai-layout-copy.d.ts +37 -0
- package/src/lib/layout-language/ai-layout-copy.js +383 -3
- package/src/lib/layout-language/ai-layout-copy.js.map +1 -1
- package/src/lib/layout-language/ai-layout-design.d.ts +19 -0
- package/src/lib/layout-language/ai-layout-design.js +31 -11
- package/src/lib/layout-language/ai-layout-design.js.map +1 -1
- package/src/lib/layout-language/ai-layout-listings.d.ts +7 -1
- package/src/lib/layout-language/ai-layout-listings.js +9 -1
- package/src/lib/layout-language/ai-layout-listings.js.map +1 -1
- package/src/lib/layout-language/ai-layout-pictures.d.ts +39 -1
- package/src/lib/layout-language/ai-layout-pictures.js +141 -4
- package/src/lib/layout-language/ai-layout-pictures.js.map +1 -1
- package/src/lib/layout-language/ai-layout-storefront.d.ts +18 -4
- package/src/lib/layout-language/ai-layout-storefront.js +100 -20
- package/src/lib/layout-language/ai-layout-storefront.js.map +1 -1
- package/src/lib/model/ai-build-job.d.ts +7 -0
- package/src/lib/model/ai-build-job.js +36 -7
- package/src/lib/model/ai-build-job.js.map +1 -1
- package/src/lib/model/ai-build-plan.d.ts +28 -4
- package/src/lib/model/ai-build-plan.js +49 -9
- package/src/lib/model/ai-build-plan.js.map +1 -1
- package/src/lib/model/ai-build-progress.js +3 -1
- package/src/lib/model/ai-build-progress.js.map +1 -1
- package/src/lib/model/ai-job-notice.d.ts +8 -0
- package/src/lib/model/ai-job-notice.js +33 -0
- package/src/lib/model/ai-job-notice.js.map +1 -1
- package/src/lib/model/ai-job-plan-lines.d.ts +2 -1
- package/src/lib/model/ai-job-plan-lines.js +6 -1
- package/src/lib/model/ai-job-plan-lines.js.map +1 -1
- package/src/lib/model/ai-jobs.types.d.ts +8 -0
- package/src/lib/model/ai-jobs.types.js.map +1 -1
- package/src/lib/model/ai-permissions.d.ts +13 -0
- package/src/lib/model/ai-permissions.js +29 -1
- package/src/lib/model/ai-permissions.js.map +1 -1
- package/src/lib/model/ai-plan-said-sections.d.ts +12 -3
- package/src/lib/model/ai-plan-said-sections.js +22 -5
- package/src/lib/model/ai-plan-said-sections.js.map +1 -1
- package/src/lib/model/ai-products.d.ts +18 -0
- package/src/lib/model/ai-products.js +32 -0
- package/src/lib/model/ai-products.js.map +1 -1
- package/src/lib/model/ai-site-context.d.ts +6 -2
- package/src/lib/model/ai-site-context.js +8 -2
- package/src/lib/model/ai-site-context.js.map +1 -1
- package/src/lib/model/ai-site-inspiration.d.ts +3 -2
- package/src/lib/model/ai-site-inspiration.js +3 -2
- package/src/lib/model/ai-site-inspiration.js.map +1 -1
- package/src/lib/plugin.js +4 -13
- package/src/lib/plugin.js.map +1 -1
- package/src/lib/providers/anthropic.js +9 -2
- package/src/lib/providers/anthropic.js.map +1 -1
- package/src/lib/providers/catalog.js +14 -5
- package/src/lib/providers/catalog.js.map +1 -1
- package/src/lib/providers/contract.d.ts +24 -1
- package/src/lib/providers/contract.js.map +1 -1
- package/src/lib/providers/routing.js +5 -2
- package/src/lib/providers/routing.js.map +1 -1
- package/src/lib/runtime/ai-dataset-generation.d.ts +120 -1
- package/src/lib/runtime/ai-dataset-generation.js +352 -3
- package/src/lib/runtime/ai-dataset-generation.js.map +1 -1
- package/src/lib/runtime/ai-dev-replay.d.ts +1 -0
- package/src/lib/runtime/ai-dev-replay.js +4 -2
- package/src/lib/runtime/ai-dev-replay.js.map +1 -1
- package/src/lib/runtime/ai-doctrine-validators.d.ts +47 -3
- package/src/lib/runtime/ai-doctrine-validators.js +345 -28
- package/src/lib/runtime/ai-doctrine-validators.js.map +1 -1
- package/src/lib/runtime/ai-doctrine.d.ts +5 -4
- package/src/lib/runtime/ai-doctrine.js +10 -3
- package/src/lib/runtime/ai-doctrine.js.map +1 -1
- package/src/lib/runtime/ai-icon-library.d.ts +27 -1
- package/src/lib/runtime/ai-icon-library.js +30 -3
- package/src/lib/runtime/ai-icon-library.js.map +1 -1
- package/src/lib/runtime/ai-products-generation.d.ts +11 -1
- package/src/lib/runtime/ai-products-generation.js +51 -4
- package/src/lib/runtime/ai-products-generation.js.map +1 -1
- package/src/lib/runtime/assist-answer-cache.d.ts +2 -0
- package/src/lib/runtime/assist-answer-cache.js +5 -2
- package/src/lib/runtime/assist-answer-cache.js.map +1 -1
- package/src/lib/server/ai-allotments.js +7 -2
- package/src/lib/server/ai-allotments.js.map +1 -1
- package/src/lib/server/ai-experiment-versions.js +5 -5
- package/src/lib/server/ai-experiment-versions.js.map +1 -1
- package/src/lib/server/ai-host-permissions-roster.d.ts +25 -0
- package/src/lib/server/ai-host-permissions-roster.js +33 -0
- package/src/lib/server/ai-host-permissions-roster.js.map +1 -0
- package/src/lib/server/ai-host-permissions.js +8 -6
- package/src/lib/server/ai-host-permissions.js.map +1 -1
- package/src/lib/server/ai-image-reads-route.d.ts +17 -0
- package/src/lib/server/ai-image-reads-route.js +106 -0
- package/src/lib/server/ai-image-reads-route.js.map +1 -0
- package/src/lib/server/ai-seo-apply.js +5 -5
- package/src/lib/server/ai-seo-apply.js.map +1 -1
- package/src/lib/server/ai-site-import-route.js +7 -4
- package/src/lib/server/ai-site-import-route.js.map +1 -1
- package/src/lib/server/assist-build.d.ts +15 -1
- package/src/lib/server/assist-build.js +30 -3
- package/src/lib/server/assist-build.js.map +1 -1
- package/src/lib/server/assist-chat.d.ts +11 -7
- package/src/lib/server/assist-chat.js +185 -48
- package/src/lib/server/assist-chat.js.map +1 -1
- package/src/lib/server/assist-docs-query.d.ts +51 -0
- package/src/lib/server/assist-docs-query.js +57 -0
- package/src/lib/server/assist-docs-query.js.map +1 -0
- package/src/lib/server/assist-jobs-context.d.ts +102 -0
- package/src/lib/server/assist-jobs-context.js +227 -0
- package/src/lib/server/assist-jobs-context.js.map +1 -0
- package/src/lib/server/assist-view-context.d.ts +8 -4
- package/src/lib/server/assist-view-context.js +12 -7
- package/src/lib/server/assist-view-context.js.map +1 -1
- package/src/lib/server.js +12 -0
- package/src/lib/server.js.map +1 -1
- package/src/lib/tools/ai-dataset-tool.d.ts +11 -1
- package/src/lib/tools/ai-dataset-tool.js +24 -7
- package/src/lib/tools/ai-dataset-tool.js.map +1 -1
- package/src/lib/tools/ai-duplicate-resource-tool.js +5 -6
- package/src/lib/tools/ai-duplicate-resource-tool.js.map +1 -1
- package/src/lib/components/ai-collaborator-permissions-column.component.d.ts +0 -32
- package/src/lib/components/ai-collaborator-permissions-column.component.js +0 -132
- package/src/lib/components/ai-collaborator-permissions-column.component.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../libs/plugins/ai/src/lib/jobs/fixtures/ai-site-agl4092-datasets.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { AiBuildPlan, AiBuildPlanCreate, AiBuildPlanScreen } from '../../model/ai-build-plan'\n\n/**\n * RECORDED, NOT GOLDEN (AGL-4092): what the 2026-10-28 Rut Runners Racing\n * start in the test workspace planned and wrote, and the About page an Assist\n * build then proposed for it, for the offline replays of Lane B. The business\n * is fictional. No contact detail, street, person, workspace or site id is\n * kept: screen ids are this fixture's own, and the contact details the brief\n * and the plan quoted are left out.\n *\n * - The site job's \"Riders\" and \"Race results\" datasets, as their records\n * were written: six sample riders whose every bio ends \"Add this rider's\n * story here.\", and eleven sample races whose every past one has the\n * result \"Add finishing position\". Dates are \"\" as the tool answers them;\n * the platform sets them.\n * - The Assist build's brief, as the chat wrote it, and its plan's About\n * page, whose section names carried \"[year founded]\", \"[team story]\",\n * \"[age and class requirements]\", \"[email]\" and \"[phone]\".\n */\n\n/** The site job's \"Riders\" creation, as planned. */\nexport const RUT_1028_RIDERS: AiBuildPlanCreate = {\n kind: 'dataset',\n name: 'Riders',\n why: 'Rider profiles are a list of 4 or more similar items and none of the listed datasets holds them.',\n duplicateOf: null,\n fields: ['Name', 'Class', 'Bike number', 'Hometown', 'Bio', 'Photo'],\n id: 'fxRiders28',\n}\n\n/** The site job's \"Race results\" creation, as planned. */\nexport const RUT_1028_RACE_RESULTS: AiBuildPlanCreate = {\n kind: 'dataset',\n name: 'Race results',\n why: 'The race schedule and results are a list of events and no listed dataset holds them.',\n duplicateOf: null,\n fields: ['Event', 'Date', 'Track', 'Class', 'Result', 'Status'],\n id: 'fxRaces28',\n}\n\nconst page = (id: string, title: string, slug: string, sections: Array<[string, string[], number]>): AiBuildPlanScreen => ({\n id,\n title,\n slug,\n layout: 'new:Team site layout',\n template: null,\n duplicateOf: null,\n nav: true,\n seoTitle: title,\n seoDescription: title,\n record: null,\n sections: sections.map(([name, uses, items]) => ({ name, uses, items })),\n})\n\n/** The site job's pages, as planned (titles, addresses and sections). */\nexport const RUT_1028_SCREENS: AiBuildPlanScreen[] = [\n page('fx28Home', 'Home', '/', [\n ['Hero with team tagline and Meet the riders button', [], 0],\n ['How to start: four steps to join the team', [], 4],\n ['Programs: classes our riders race in', [], 5],\n ['The team in pictures: garage, track and podium', [], 6],\n ['Meet the riders', ['new:Riders'], 4],\n ['Questions people ask, answered', [], 5],\n ['Call to action: Contact the team button', [], 0],\n ]),\n page('fx28Riders', 'Riders', '/riders', [\n ['Riders intro', [], 0],\n ['Rider profiles', ['new:Riders'], 6],\n ['Want to ride with us: join call to action', [], 0],\n ]),\n page('fx28Schedule', 'Race Schedule and Results', '/schedule-results', [\n ['Season overview', [], 0],\n ['Upcoming races', ['new:Race results'], 5],\n ['Past results', ['new:Race results'], 6],\n ['Come watch: what to expect at the track', [], 3],\n ]),\n page('fx28Sponsors', 'Sponsors', '/sponsors', [\n ['Why local businesses sponsor the team', [], 0],\n ['Ways to sponsor', [], 4],\n ['What working together is like', [], 4],\n ['Our current sponsors', [], 0],\n ['Call to action: become a sponsor button', [], 0],\n ]),\n page('fx28Contact', 'Contact', '/contact', [\n ['Get in touch intro', [], 0],\n ['Sponsor, fan and join inquiry form', ['new:Sponsor and join inquiry form'], 0],\n ['Where to find us: address, phone, email and service area', [], 5],\n ]),\n]\n\n/** The site job's brief, as the dataset unit's opened with it (no contact details). */\nexport const RUT_1028_BRIEF =\n 'A 5-page website for Amateur motocross race team: rider profiles, race schedule and results, sponsors, and sponsor inquiries. It is for Local businesses that sponsor riders, race fans and families following the team, and young riders who want to join. Make it a fitness & sports site. Plan a page for each thing a visitor comes to do, with the contact form on the page a visitor opens to get in touch.'\n\n/** The instruction every recorded bio ended with. */\nexport const RIDER_INSTRUCTION = \"Add this rider's story here.\"\n\n/** The instruction every recorded past result was. */\nexport const RESULT_INSTRUCTION = 'Add finishing position'\n\nconst RIDER_FIELDS = RUT_1028_RIDERS.fields.map((name) => ({ name, type: 'text' }))\n\n/** One sample rider as the tool answers it: name, class, bike number, hometown, bio, photo. */\nconst rider = (name: string, klass: string, bio: string) => ({ values: [name, klass, '', '', bio, ''], sample: true })\n\n/** The six riders' names, classes and the bios' first sentences, as written. */\nconst RIDERS: Array<[string, string, string]> = [\n ['Youth rider, 65cc class', '65cc Beginner', 'A young rider learning race starts, corners and track etiquette with the team.'],\n ['Youth rider, 85cc class', '85cc Junior', 'A junior rider building speed and consistency through the season.'],\n ['Amateur rider, 125cc class', '125cc Amateur', 'An amateur rider racing local rounds for Rut Runners Racing.'],\n ['Amateur rider, 250cc class', '250cc Amateur', \"A full-size bike rider who races the team's Central Texas rounds.\"],\n [\"Women's class rider\", \"Women's Amateur\", \"A rider competing in the women's class for the team.\"],\n ['Vet class rider', 'Vet Amateur', 'An experienced rider racing in the vet class and mentoring newer teammates.'],\n]\n\n/** The first sentence of each recorded bio: what is left once the instruction is taken out. */\nexport const RIDER_BIOS = RIDERS.map(([, , bio]) => bio)\n\n/** The \"Riders\" answer of 2026-10-28, through the tool: six samples, each bio ending in the instruction. */\nexport const RIDERS_INSTRUCTION_ANSWER = {\n fields: RIDER_FIELDS,\n records: RIDERS.map(([name, klass, bio]) => rider(name, klass, `${bio} ${RIDER_INSTRUCTION}`)),\n}\n\n/**\n * A second answer of the same kind (AGL-4092): the six riders again, and one\n * row whose only words are an instruction to the owner, which nothing is left\n * of once it is taken out.\n */\nexport const RIDERS_INSTRUCTION_ANSWER_AGAIN = {\n fields: RIDER_FIELDS,\n records: [...RIDERS_INSTRUCTION_ANSWER.records, { values: [\"Add this rider's name here.\", '', '', '', '', ''], sample: true }],\n}\n\n/** The answer the re-ask is for: the six riders, each bio finished copy about its sample. */\nexport const RIDERS_FINISHED_ANSWER = {\n fields: RIDER_FIELDS,\n records: RIDERS.map(([name, klass, bio]) => rider(name, klass, `${bio} Rides most weekends with the team at tracks around Central Texas.`)),\n}\n\nconst RACE_FIELDS = RUT_1028_RACE_RESULTS.fields.map((name) => ({ name, type: 'text' }))\n\n/** One sample race as the tool answers it: event, date, track, class, result, status. */\nconst race = (event: string, track: string, klass: string, status: 'Upcoming' | 'Past', result = '') => ({\n values: [event, '', track, klass, result, status],\n sample: true,\n})\n\n/** The \"Race results\" answer of 2026-10-28, through the tool: five to come, six behind, each past result the instruction. */\nexport const RACE_RESULTS_INSTRUCTION_ANSWER = {\n fields: RACE_FIELDS,\n records: [\n race('Season Opener Race Day', 'Local motocross track', 'Youth 65cc', 'Upcoming'),\n race('Series Round 2', 'Central Texas track', 'Youth 85cc', 'Upcoming'),\n race('Lockhart Home Track Race', 'Lockhart track', 'Beginner', 'Upcoming'),\n race('Series Round 3', 'Central Texas track', 'Junior', 'Upcoming'),\n race('Season Finale Race Day', 'Central Texas track', 'Open Amateur', 'Upcoming'),\n race('Series Round 1', 'Central Texas track', 'Youth 65cc', 'Past', RESULT_INSTRUCTION),\n race('Spring Club Race', 'Local motocross track', 'Youth 85cc', 'Past', RESULT_INSTRUCTION),\n race('San Marcos Area Race Day', 'San Marcos area track', 'Beginner', 'Past', RESULT_INSTRUCTION),\n race('Austin Area Race Day', 'Austin area track', 'Junior', 'Past', RESULT_INSTRUCTION),\n race('Luling Area Race Day', 'Luling area track', 'Open Amateur', 'Past', RESULT_INSTRUCTION),\n race('Practice and Club Day', 'Local motocross track', 'Beginner', 'Past', RESULT_INSTRUCTION),\n ],\n}\n\n// ── The Assist build (AGL-4092) ────────────────────────────────────────\n\n/**\n * The brief the chat wrote for the About page, as the build tool carried it,\n * with the contact details it quoted left out. Its second-to-last sentences\n * are the chat's own: nothing in the build protocol asked for placeholders.\n */\nexport const ASSIST_ABOUT_BRIEF =\n \"Create an About page (slug /about) for Rut Runners Racing, an amateur motocross race team for local businesses based in Lockhart, Texas, serving Lockhart, Luling, San Marcos, Austin and Central Texas. Audience: local businesses that sponsor riders, race fans and families following the team, and young riders who want to join. Tone: warm and plain, no exclamation marks. Cover who the team is, what it does, the area it serves, how local businesses can sponsor riders, and how young riders can join, with a link to the existing Sponsors, Riders and Contact pages. Use only the contact details on file. Do not invent names, history, prices, results or testimonials; use bracketed placeholders where details are missing. Also propose a warmer look for the site's theme: warmer colors, friendlier fonts and softer rounded corners, for the owner to apply in Setup → Theme.\"\n\n/** The About page the Assist build's plan proposed, its section names as planned (the street left out). */\nexport const ASSIST_ABOUT_PLAN: Pick<AiBuildPlan, 'screens'> = {\n screens: [\n {\n id: 'fx28About',\n title: 'About',\n slug: '/about',\n layout: 'fxLayout',\n template: null,\n duplicateOf: null,\n nav: true,\n seoTitle: 'About Rut Runners Racing | Amateur Motocross in Lockhart, TX',\n seoDescription:\n 'Meet Rut Runners Racing, an amateur motocross team for local businesses in Lockhart, Texas. See how to sponsor a rider or join the team.',\n record: null,\n sections: [\n { name: 'Hero: About the team, with the one h1', uses: [], items: 0 },\n { name: 'Who we are: an amateur motocross team for local businesses, with [year founded] and [team story]', uses: [], items: 0 },\n { name: 'What the team does: racing, riders and following along', uses: [], items: 3 },\n { name: 'Where we race and who we serve: Lockhart, Luling, San Marcos, Austin and Central Texas', uses: [], items: 5 },\n { name: 'Sponsor a rider: how local businesses can help, with a link to the Sponsors page', uses: ['fxSponsors'], items: 0 },\n { name: 'Young riders: how to join, with a link to the Riders page, and [age and class requirements]', uses: ['fxRiders'], items: 0 },\n { name: 'Contact details: [email], [phone], Lockhart, TX, United States, with a link to the Contact page', uses: ['fxContact'], items: 3 },\n ],\n },\n ],\n}\n\n/** What those section names read once nothing in them is a gap. */\nexport const ASSIST_ABOUT_SECTION_NAMES = [\n 'Hero: About the team, with the one h1',\n 'Who we are: an amateur motocross team for local businesses',\n 'What the team does: racing, riders and following along',\n 'Where we race and who we serve: Lockhart, Luling, San Marcos, Austin and Central Texas',\n 'Sponsor a rider: how local businesses can help, with a link to the Sponsors page',\n 'Young riders: how to join, with a link to the Riders page',\n 'Contact details: Lockhart, TX, United States, with a link to the Contact page',\n]\n\n/** The guided start's answers the site job carried (no contact details): the year founded among them. */\nexport const RUT_1028_INPUTS = {\n businessType: 'Amateur motocross race team: rider profiles, race schedule and results, sponsors, and sponsor inquiries',\n audience: 'Local businesses that sponsor riders, race fans and families following the team, and young riders who want to join',\n starter: 'business',\n siteKind: 'fitness',\n pages: 5,\n businessName: 'Rut Runners Racing',\n city: 'Lockhart',\n tagline: 'Built in Lockhart, raced across Texas',\n founded: '2019',\n serviceArea: 'Lockhart\\nLuling\\nSan Marcos\\nAustin\\nCentral Texas',\n languages: 'English, Spanish',\n}\n"],"names":["RUT_1028_RIDERS","kind","name","why","duplicateOf","fields","id","RUT_1028_RACE_RESULTS","page","title","slug","sections","layout","template","nav","seoTitle","seoDescription","record","map","uses","items","RUT_1028_SCREENS","RUT_1028_BRIEF","RIDER_INSTRUCTION","RESULT_INSTRUCTION","RIDER_FIELDS","type","rider","klass","bio","values","sample","RIDERS","RIDER_BIOS","RIDERS_INSTRUCTION_ANSWER","records","RIDERS_INSTRUCTION_ANSWER_AGAIN","RIDERS_FINISHED_ANSWER","RACE_FIELDS","race","event","track","status","result","RACE_RESULTS_INSTRUCTION_ANSWER","ASSIST_ABOUT_BRIEF","ASSIST_ABOUT_PLAN","screens","ASSIST_ABOUT_SECTION_NAMES","RUT_1028_INPUTS","businessType","audience","starter","siteKind","pages","businessName","city","tagline","founded","serviceArea","languages"],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import type { AiLayoutPictureSlot } from '../../layout-language/ai-layout-pictures';
|
|
18
|
+
import { type AiStockJudgement, type AiStockSearch, type AiStockSiteTerms } from '../ai-layout-stock-photos';
|
|
19
|
+
/**
|
|
20
|
+
* How the stock photo source judges each of a slot's own searches (AGL-4065),
|
|
21
|
+
* as its `judgementOf` builds it from the search and the site's terms: what
|
|
22
|
+
* the AGL-4065 replays hold a recorded photo to, search by search.
|
|
23
|
+
*/
|
|
24
|
+
export declare function aiAgl4065Judgement(terms: AiStockSiteTerms, slot: Pick<AiLayoutPictureSlot, 'role'>, search: AiStockSearch, subject: string): AiStockJudgement;
|
|
25
|
+
/** A slot's own searches, each with its judgement. */
|
|
26
|
+
export declare function aiAgl4065Searches(terms: AiStockSiteTerms, slot: AiLayoutPictureSlot, sectionName: string): Array<{
|
|
27
|
+
search: AiStockSearch;
|
|
28
|
+
judgement: AiStockJudgement;
|
|
29
|
+
}>;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/ import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
17
|
+
import { aiStockProductSearches, aiStockSearchesFor, aiStockSlotPart, aiStockSubjectWords } from "../ai-layout-stock-photos.js";
|
|
18
|
+
/**
|
|
19
|
+
* How the stock photo source judges each of a slot's own searches (AGL-4065),
|
|
20
|
+
* as its `judgementOf` builds it from the search and the site's terms: what
|
|
21
|
+
* the AGL-4065 replays hold a recorded photo to, search by search.
|
|
22
|
+
*/ export function aiAgl4065Judgement(terms, slot, search, subject) {
|
|
23
|
+
var _search_subject, _search_shun;
|
|
24
|
+
var _search_shun1, _search_leadAny, _search_refuse, _search_needs, _search_refuseLead;
|
|
25
|
+
return _extends({
|
|
26
|
+
subject: (_search_subject = search.subject) != null ? _search_subject : search.broad ? '' : subject,
|
|
27
|
+
domain: terms.domain
|
|
28
|
+
}, terms.lead ? {
|
|
29
|
+
world: terms.lead
|
|
30
|
+
} : {}, {
|
|
31
|
+
strict: slot.role === 'gallery' && !search.broad || !!search.requires || !!search.strict,
|
|
32
|
+
named: terms.named,
|
|
33
|
+
rivals: terms.rivals
|
|
34
|
+
}, terms.shun.length || ((_search_shun1 = search.shun) == null ? void 0 : _search_shun1.length) ? {
|
|
35
|
+
shun: [
|
|
36
|
+
...new Set([
|
|
37
|
+
...terms.shun,
|
|
38
|
+
...(_search_shun = search.shun) != null ? _search_shun : []
|
|
39
|
+
])
|
|
40
|
+
]
|
|
41
|
+
} : {}, terms.shunLead.length ? {
|
|
42
|
+
shunLead: terms.shunLead
|
|
43
|
+
} : {}, search.product ? {
|
|
44
|
+
product: true
|
|
45
|
+
} : {}, ((_search_leadAny = search.leadAny) == null ? void 0 : _search_leadAny.length) ? {
|
|
46
|
+
leadAny: search.leadAny
|
|
47
|
+
} : {}, search.requires ? {
|
|
48
|
+
requires: search.requires
|
|
49
|
+
} : {}, search.category ? {
|
|
50
|
+
category: search.category
|
|
51
|
+
} : {}, search.object ? {
|
|
52
|
+
object: search.object
|
|
53
|
+
} : {}, search.kin ? {
|
|
54
|
+
kin: search.kin
|
|
55
|
+
} : {}, search.lead ? {
|
|
56
|
+
lead: true
|
|
57
|
+
} : {}, search.leadWorld ? {
|
|
58
|
+
leadWorld: true
|
|
59
|
+
} : {}, search.first ? {
|
|
60
|
+
first: true
|
|
61
|
+
} : {}, ((_search_refuse = search.refuse) == null ? void 0 : _search_refuse.length) ? {
|
|
62
|
+
refuse: search.refuse
|
|
63
|
+
} : {}, ((_search_needs = search.needs) == null ? void 0 : _search_needs.length) ? {
|
|
64
|
+
needs: search.needs
|
|
65
|
+
} : {}, ((_search_refuseLead = search.refuseLead) == null ? void 0 : _search_refuseLead.length) ? {
|
|
66
|
+
refuseLead: search.refuseLead
|
|
67
|
+
} : {});
|
|
68
|
+
}
|
|
69
|
+
/** A slot's own searches, each with its judgement. */ export function aiAgl4065Searches(terms, slot, sectionName) {
|
|
70
|
+
const subject = aiStockSubjectWords(slot.alt, sectionName);
|
|
71
|
+
const searches = slot.product ? aiStockProductSearches(slot, terms.craft, terms.domain, {
|
|
72
|
+
broad: terms.broad,
|
|
73
|
+
core: terms.core
|
|
74
|
+
}) : aiStockSearchesFor(slot, terms, subject, aiStockSlotPart(slot, sectionName), sectionName);
|
|
75
|
+
return searches.map((search)=>({
|
|
76
|
+
search,
|
|
77
|
+
judgement: aiAgl4065Judgement(terms, slot, search, subject)
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
//# sourceMappingURL=ai-stock-photo-agl4065-judge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../libs/plugins/ai/src/lib/jobs/fixtures/ai-stock-photo-agl4065-judge.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { AiLayoutPictureSlot } from '../../layout-language/ai-layout-pictures'\nimport {\n aiStockProductSearches,\n aiStockSearchesFor,\n aiStockSlotPart,\n aiStockSubjectWords,\n type AiStockJudgement,\n type AiStockSearch,\n type AiStockSiteTerms,\n} from '../ai-layout-stock-photos'\n\n/**\n * How the stock photo source judges each of a slot's own searches (AGL-4065),\n * as its `judgementOf` builds it from the search and the site's terms: what\n * the AGL-4065 replays hold a recorded photo to, search by search.\n */\nexport function aiAgl4065Judgement(\n terms: AiStockSiteTerms,\n slot: Pick<AiLayoutPictureSlot, 'role'>,\n search: AiStockSearch,\n subject: string,\n): AiStockJudgement {\n return {\n subject: search.subject ?? (search.broad ? '' : subject),\n domain: terms.domain,\n ...(terms.lead ? { world: terms.lead } : {}),\n strict: (slot.role === 'gallery' && !search.broad) || !!search.requires || !!search.strict,\n named: terms.named,\n rivals: terms.rivals,\n ...(terms.shun.length || search.shun?.length ? { shun: [...new Set([...terms.shun, ...(search.shun ?? [])])] } : {}),\n ...(terms.shunLead.length ? { shunLead: terms.shunLead } : {}),\n ...(search.product ? { product: true } : {}),\n ...(search.leadAny?.length ? { leadAny: search.leadAny } : {}),\n ...(search.requires ? { requires: search.requires } : {}),\n ...(search.category ? { category: search.category } : {}),\n ...(search.object ? { object: search.object } : {}),\n ...(search.kin ? { kin: search.kin } : {}),\n ...(search.lead ? { lead: true } : {}),\n ...(search.leadWorld ? { leadWorld: true } : {}),\n ...(search.first ? { first: true } : {}),\n ...(search.refuse?.length ? { refuse: search.refuse } : {}),\n ...(search.needs?.length ? { needs: search.needs } : {}),\n ...(search.refuseLead?.length ? { refuseLead: search.refuseLead } : {}),\n }\n}\n\n/** A slot's own searches, each with its judgement. */\nexport function aiAgl4065Searches(\n terms: AiStockSiteTerms,\n slot: AiLayoutPictureSlot,\n sectionName: string,\n): Array<{ search: AiStockSearch; judgement: AiStockJudgement }> {\n const subject = aiStockSubjectWords(slot.alt, sectionName)\n const searches = slot.product\n ? aiStockProductSearches(slot, terms.craft, terms.domain, { broad: terms.broad, core: terms.core })\n : aiStockSearchesFor(slot, terms, subject, aiStockSlotPart(slot, sectionName), sectionName)\n return searches.map((search) => ({ search, judgement: aiAgl4065Judgement(terms, slot, search, subject) }))\n}\n"],"names":["aiStockProductSearches","aiStockSearchesFor","aiStockSlotPart","aiStockSubjectWords","aiAgl4065Judgement","terms","slot","search","subject","broad","domain","lead","world","strict","role","requires","named","rivals","shun","length","Set","shunLead","product","leadAny","category","object","kin","leadWorld","first","refuse","needs","refuseLead","aiAgl4065Searches","sectionName","alt","searches","craft","core","map","judgement"],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import type { StockPhoto } from '@aglyn/aglyn/plugin-manager/stock-photo-provider';
|
|
18
|
+
/** `motocross race team`: every page's cover hero (the first, 4462875, on all four), and eight of the "Race events" records' covers. */
|
|
19
|
+
export declare const MOTOCROSS_RACE_TEAM: StockPhoto[];
|
|
20
|
+
/** `team`: the Riders page's cover, once its own search found nothing it took. */
|
|
21
|
+
export declare const TEAM: StockPhoto[];
|
|
22
|
+
/** `team ready ride`: the "Ready to ride with us?" closing picture (vertical). */
|
|
23
|
+
export declare const TEAM_READY_RIDE: StockPhoto[];
|
|
24
|
+
/** `upcoming race`: two "Race events" records' covers, named "Upcoming race 1 (details to be added)" and on. */
|
|
25
|
+
export declare const UPCOMING_RACE: StockPhoto[];
|
|
26
|
+
/** `motorcycle`: every page's picture searched it, the home hero (vertical) first. */
|
|
27
|
+
export declare const MOTORCYCLE: StockPhoto[];
|
|
28
|
+
/** `dirt bike`: the heroes of the home, about, special-order and contact pages. */
|
|
29
|
+
export declare const DIRT_BIKE: StockPhoto[];
|
|
30
|
+
/** `parts`: the home's "Shop by collection" tiles "Parts for the bike" and "Parts for the ranch". */
|
|
31
|
+
export declare const PARTS: StockPhoto[];
|
|
32
|
+
/** `part`: the product "Aftermarket Dirt Bike Part". */
|
|
33
|
+
export declare const PART: StockPhoto[];
|
|
34
|
+
/** `describe part`: the special-order step "Describe the part". */
|
|
35
|
+
export declare const DESCRIBE_PART: StockPhoto[];
|
|
36
|
+
/** `atv tire`: the product "ATV Tire". */
|
|
37
|
+
export declare const ATV_TIRE: StockPhoto[];
|
|
38
|
+
/** `riding gear`: the product "Riding Gear Item". */
|
|
39
|
+
export declare const RIDING_GEAR: StockPhoto[];
|
|
40
|
+
/** `bike parts order`: the product "OEM Dirt Bike Parts Order". */
|
|
41
|
+
export declare const BIKE_PARTS_ORDER: StockPhoto[];
|
|
42
|
+
/** `atv parts order`: the product "OEM ATV Parts Order". */
|
|
43
|
+
export declare const ATV_PARTS_ORDER: StockPhoto[];
|
|
44
|
+
/** `bike it`: the special-order step "Pick it up in store". */
|
|
45
|
+
export declare const BIKE_IT: StockPhoto[];
|
|
46
|
+
/** `bike it will fit`: the closing band "Not sure it will fit?". */
|
|
47
|
+
export declare const BIKE_IT_WILL_FIT: StockPhoto[];
|
|
48
|
+
/** `bike tell us machine`: the special-order step "Tell us your machine". */
|
|
49
|
+
export declare const BIKE_TELL_US_MACHINE: StockPhoto[];
|
|
50
|
+
/** `bike visit shop`: the about page's "Visit the shop" band. */
|
|
51
|
+
export declare const BIKE_VISIT_SHOP: StockPhoto[];
|
|
52
|
+
/** `bike we source it`: the special-order step "We source it". */
|
|
53
|
+
export declare const BIKE_WE_SOURCE_IT: StockPhoto[];
|
|
54
|
+
/** `tires`: the collection tile "Tires for every track and trail". */
|
|
55
|
+
export declare const TIRES: StockPhoto[];
|
|
56
|
+
/** `dirt bike tire`: the product "Dirt Bike Tire". */
|
|
57
|
+
export declare const DIRT_BIKE_TIRE: StockPhoto[];
|
|
58
|
+
/** `gear`: the collection tile "Gear for ride day". */
|
|
59
|
+
export declare const GEAR: StockPhoto[];
|
|
60
|
+
/** `handyman`: the services, about, contact and working-together covers, and a closing band. */
|
|
61
|
+
export declare const HANDYMAN: StockPhoto[];
|
|
62
|
+
/** `drywall`: a services record's cover, its name read as "drywall". */
|
|
63
|
+
export declare const DRYWALL: StockPhoto[];
|
|
64
|
+
/** `handyman describe job`: the closing band "Call to action: describe your job". */
|
|
65
|
+
export declare const HANDYMAN_DESCRIBE_JOB: StockPhoto[];
|
|
66
|
+
/** `doors`: a services record's cover, its name read as "doors". */
|
|
67
|
+
export declare const DOORS: StockPhoto[];
|
|
68
|
+
/** `rental unit repairs`: a services record's cover. */
|
|
69
|
+
export declare const RENTAL_UNIT_REPAIRS: StockPhoto[];
|
|
70
|
+
/** `landscaping`: the "Irrigation repair and tune-ups" picture. */
|
|
71
|
+
export declare const LANDSCAPING: StockPhoto[];
|
|
72
|
+
/** `team meeting office`: the business kind's second widened search; the contact and about covers. */
|
|
73
|
+
export declare const TEAM_MEETING_OFFICE: StockPhoto[];
|
|
74
|
+
/** `caterer`: the craft's broad search once "catering" was read as the craft: the home, catering and menu heroes. */
|
|
75
|
+
export declare const CATERER: StockPhoto[];
|
|
76
|
+
/** `chef cooking`: the catering craft's maker at work, for the trailer's story. */
|
|
77
|
+
export declare const CHEF_COOKING: StockPhoto[];
|
|
78
|
+
/** `catering potato`: the menu record "Potato and egg breakfast taco". */
|
|
79
|
+
export declare const CATERING_POTATO: StockPhoto[];
|
|
80
|
+
/** `breakfast taco`: the visit page's hero. */
|
|
81
|
+
export declare const BREAKFAST_TACO: StockPhoto[];
|
|
82
|
+
/** `asada street taco`, `pastor street taco`, `chicken street taco`, `carnitas street taco`: the street taco records, and the story hero. */
|
|
83
|
+
export declare const STREET_TACOS: StockPhoto[];
|
|
84
|
+
/** `catering bacon`: a menu record read as "bacon" and qualified by the craft. */
|
|
85
|
+
export declare const CATERING_BACON: StockPhoto[];
|
|
86
|
+
/** Every photo above, by its Pixabay id. */
|
|
87
|
+
export declare const AGL4065_HITS: ReadonlyMap<string, StockPhoto>;
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/ /**
|
|
17
|
+
* WHAT PIXABAY GAVE SIX BOOTH-KIT SITES ON 2026-10-25 (AGL-4065), AS THEIR
|
|
18
|
+
* MEDIA LIBRARIES RECORD IT.
|
|
19
|
+
*
|
|
20
|
+
* Six guided starts in the test workspace, one per fictional business:
|
|
21
|
+
* Bluebonnet Yard & Landscape (landscaping), Rut Runners Racing (an amateur
|
|
22
|
+
* motocross team), Holeshot Moto Repair (motorcycle and dirt bike repair),
|
|
23
|
+
* Berm & Bolt Moto Parts (dirt bike and ATV parts), Two Oaks Handyman and Pit
|
|
24
|
+
* Row Tacos (a taco trailer). The provider's 24-hour search cache had expired
|
|
25
|
+
* by 2026-10-28, so the answers are read back from what each site's library
|
|
26
|
+
* holds for every photo it copied: its Pixabay id, its stored size, its page
|
|
27
|
+
* address and the search that found it (`stockPhoto.query`).
|
|
28
|
+
*
|
|
29
|
+
* Each list is the photos one search placed, by that search's words, in the
|
|
30
|
+
* order the libraries hold them: a part of what Pixabay answered, never more.
|
|
31
|
+
* A photo's tags are the words of its page address, which Pixabay builds from
|
|
32
|
+
* its leading tags, grouped as the alt text the start wrote from them reads
|
|
33
|
+
* ("A race car and a motorsport" is "race car", "motorsport"); its later
|
|
34
|
+
* tags are not recorded. A search not listed here was not sent on 2026-10-25,
|
|
35
|
+
* and a replay answers it with nothing. No contributor, no contact details.
|
|
36
|
+
*/ const hit = (id, width, height, slug, tags)=>({
|
|
37
|
+
provider: 'pixabay',
|
|
38
|
+
id: String(id),
|
|
39
|
+
width,
|
|
40
|
+
height,
|
|
41
|
+
pageUrl: `https://pixabay.com/photos/${slug}-${id}/`,
|
|
42
|
+
photographer: 'A Pixabay contributor',
|
|
43
|
+
tags: tags.split(', '),
|
|
44
|
+
downloadUrl: `https://pixabay.com/get/g${id}_1280.jpg`
|
|
45
|
+
});
|
|
46
|
+
// ── Rut Runners Racing: "Amateur motocross race team: rider profiles, …" ──
|
|
47
|
+
/** `motocross race team`: every page's cover hero (the first, 4462875, on all four), and eight of the "Race events" records' covers. */ export const MOTOCROSS_RACE_TEAM = [
|
|
48
|
+
hit(4462875, 1280, 853, 'race-car-motorsport-pit-lane', 'race car, motorsport, pit lane'),
|
|
49
|
+
hit(10135205, 1280, 912, 'motorcycle-motocross-race-speed', 'motorcycle, motocross, race, speed'),
|
|
50
|
+
hit(7690696, 1280, 853, 'motorcycle-motocross-speed-ktm', 'motorcycle, motocross, speed, ktm'),
|
|
51
|
+
hit(4948269, 1280, 853, 'motocross-race-sport-speed-extreme', 'motocross, race, sport, speed, extreme'),
|
|
52
|
+
hit(4287241, 1280, 853, 'speedway-motorcycle-motorcycle-race', 'speedway, motorcycle, motorcycle race'),
|
|
53
|
+
hit(7097693, 1280, 853, 'motocross-motorbike-bikers-enduro', 'motocross, motorbike, bikers, enduro'),
|
|
54
|
+
hit(8122941, 1280, 853, 'training-motocross-motorcycle-sport', 'training, motocross, motorcycle, sport'),
|
|
55
|
+
hit(6380133, 1280, 853, 'motorcycle-rider-motocross-dust', 'motorcycle, rider, motocross, dust'),
|
|
56
|
+
hit(5546581, 1280, 868, 'motocross-race-sports-racing', 'motocross, race, sports, racing')
|
|
57
|
+
];
|
|
58
|
+
/** `team`: the Riders page's cover, once its own search found nothing it took. */ export const TEAM = [
|
|
59
|
+
hit(386673, 1280, 960, 'team-group-people-motivation', 'team, group, people, motivation')
|
|
60
|
+
];
|
|
61
|
+
/** `team ready ride`: the "Ready to ride with us?" closing picture (vertical). */ export const TEAM_READY_RIDE = [
|
|
62
|
+
hit(7594065, 853, 1280, 'horse-riding-ride-out-terrain-horse', 'horse riding, ride out, terrain, horse')
|
|
63
|
+
];
|
|
64
|
+
/** `upcoming race`: two "Race events" records' covers, named "Upcoming race 1 (details to be added)" and on. */ export const UPCOMING_RACE = [
|
|
65
|
+
hit(1851269, 1280, 841, 'cyclists-race-bicycles-bikes', 'cyclists, race, bicycles, bikes'),
|
|
66
|
+
hit(394205, 1280, 853, 'horses-horse-tradition-rider', 'horses, horse, tradition, rider')
|
|
67
|
+
];
|
|
68
|
+
// ── Holeshot Moto Repair: "Motorcycle and dirt bike repair shop: …" ──
|
|
69
|
+
/** `motorcycle`: every page's picture searched it, the home hero (vertical) first. */ export const MOTORCYCLE = [
|
|
70
|
+
hit(7749462, 853, 1280, 'indian-motorcycles-motorcycle', 'indian motorcycles, motorcycle'),
|
|
71
|
+
hit(459594, 1280, 960, 'motorcycle-engine-metal-motor', 'motorcycle, engine, metal, motor'),
|
|
72
|
+
hit(7356527, 853, 1280, 'motorcycle-moped-old-motorcycle', 'motorcycle, moped, old motorcycle'),
|
|
73
|
+
hit(7425471, 853, 1280, 'motorcycle-scooter-speed-honda', 'motorcycle, scooter, speed, honda'),
|
|
74
|
+
hit(1084694, 1280, 844, 'motorcycle-race-race-track', 'motorcycle, race, race track')
|
|
75
|
+
];
|
|
76
|
+
// ── Berm & Bolt Moto Parts: "Dirt bike and ATV parts shop: …" ──
|
|
77
|
+
/** `dirt bike`: the heroes of the home, about, special-order and contact pages. */ export const DIRT_BIKE = [
|
|
78
|
+
hit(4187393, 1280, 853, 'bike-enduro-extreme-downhill-sport', 'bike, enduro, extreme, downhill, sport'),
|
|
79
|
+
hit(209489, 1280, 851, 'dirt-bike-motorcycle-jump-autumn', 'dirt bike, motorcycle, jump, autumn'),
|
|
80
|
+
hit(6594869, 1280, 859, 'dirt-bike-dirt-quad-planet-space', 'dirt bike, dirt, quad, planet, space'),
|
|
81
|
+
hit(6938660, 1280, 853, 'dirt-bike-countryside-boys', 'dirt bike, countryside, boys'),
|
|
82
|
+
hit(1868996, 1280, 874, 'dirt-bike-bike-rider-motocross', 'dirt bike, bike, rider, motocross'),
|
|
83
|
+
hit(330815, 1280, 851, 'dirt-bike-motocross-motorcycle', 'dirt bike, motocross, motorcycle'),
|
|
84
|
+
hit(171156, 848, 1280, 'dirt-bike-motocross-bike-motorcycle', 'dirt bike, motocross, bike, motorcycle'),
|
|
85
|
+
hit(4500339, 1280, 853, 'bike-racing-motocross-motorsport', 'bike, racing, motocross, motorsport')
|
|
86
|
+
];
|
|
87
|
+
/** `parts`: the home's "Shop by collection" tiles "Parts for the bike" and "Parts for the ranch". */ export const PARTS = [
|
|
88
|
+
hit(4612334, 848, 1280, 'river-part-canoe-blue', 'river, part, canoe, blue'),
|
|
89
|
+
hit(4648358, 1280, 853, 'machined-parts-wrench-part-industry', 'machined parts, wrench, part, industry')
|
|
90
|
+
];
|
|
91
|
+
/** `part`: the product "Aftermarket Dirt Bike Part". */ export const PART = [
|
|
92
|
+
hit(4753080, 853, 1280, 'auto-parts-belt-car-parts', 'auto parts, belt, car parts')
|
|
93
|
+
];
|
|
94
|
+
/** `describe part`: the special-order step "Describe the part". */ export const DESCRIBE_PART = [
|
|
95
|
+
hit(443674, 1280, 844, 'gear-workshop-spare-part-metal', 'gear, workshop, spare part, metal')
|
|
96
|
+
];
|
|
97
|
+
/** `atv tire`: the product "ATV Tire". */ export const ATV_TIRE = [
|
|
98
|
+
hit(3267701, 960, 1280, 'tire-tread-car-tire-rubber-pattern', 'tire, tread, car tire, rubber, pattern')
|
|
99
|
+
];
|
|
100
|
+
/** `riding gear`: the product "Riding Gear Item". */ export const RIDING_GEAR = [
|
|
101
|
+
hit(408364, 1039, 1280, 'gear-mechanics-bikes-transmission', 'gear, mechanics, bikes, transmission')
|
|
102
|
+
];
|
|
103
|
+
/** `bike parts order`: the product "OEM Dirt Bike Parts Order". */ export const BIKE_PARTS_ORDER = [
|
|
104
|
+
hit(4756327, 853, 1280, 'delivery-man-food-service-order', 'delivery man, food, service, order')
|
|
105
|
+
];
|
|
106
|
+
/** `atv parts order`: the product "OEM ATV Parts Order". */ export const ATV_PARTS_ORDER = [
|
|
107
|
+
hit(4450390, 960, 1280, 'trees-sync-order-aligned-shapes', 'trees, sync, order, aligned, shapes')
|
|
108
|
+
];
|
|
109
|
+
/** `bike it`: the special-order step "Pick it up in store". */ export const BIKE_IT = [
|
|
110
|
+
hit(4367285, 1280, 853, 'cycling-cyclists-cycle-racing', 'cycling, cyclists, cycle racing')
|
|
111
|
+
];
|
|
112
|
+
/** `bike it will fit`: the closing band "Not sure it will fit?". */ export const BIKE_IT_WILL_FIT = [
|
|
113
|
+
hit(7576306, 1280, 960, 'helmet-bicycle-woman-cyclist', 'helmet, bicycle, woman, cyclist')
|
|
114
|
+
];
|
|
115
|
+
/** `bike tell us machine`: the special-order step "Tell us your machine". */ export const BIKE_TELL_US_MACHINE = [
|
|
116
|
+
hit(5309140, 1280, 850, 'machine-design-bike-technology', 'machine, design, bike, technology')
|
|
117
|
+
];
|
|
118
|
+
/** `bike visit shop`: the about page's "Visit the shop" band. */ export const BIKE_VISIT_SHOP = [
|
|
119
|
+
hit(7006089, 1280, 853, 'scooter-store-shop-street-ride', 'scooter, store, shop, street, ride')
|
|
120
|
+
];
|
|
121
|
+
/** `bike we source it`: the special-order step "We source it". */ export const BIKE_WE_SOURCE_IT = [
|
|
122
|
+
hit(4369056, 1280, 853, 'bike-bike-race-helmet-cyclists', 'bike, bike race, helmet, cyclists')
|
|
123
|
+
];
|
|
124
|
+
/** `tires`: the collection tile "Tires for every track and trail". */ export const TIRES = [
|
|
125
|
+
hit(4891682, 960, 1280, 'tire-highway-wheel-tires-wheels', 'tire, highway, wheel, tires, wheels')
|
|
126
|
+
];
|
|
127
|
+
/** `dirt bike tire`: the product "Dirt Bike Tire". */ export const DIRT_BIKE_TIRE = [
|
|
128
|
+
hit(7284019, 853, 1280, 'bike-tire-motorcycle-motocross', 'bike tire, motorcycle, motocross')
|
|
129
|
+
];
|
|
130
|
+
/** `gear`: the collection tile "Gear for ride day". */ export const GEAR = [
|
|
131
|
+
hit(2291916, 1280, 853, 'gears-bicycle-chain-transmission', 'gears, bicycle, chain, transmission')
|
|
132
|
+
];
|
|
133
|
+
// ── Two Oaks Handyman: "Handyman business: home repairs, drywall, …" ──
|
|
134
|
+
/** `handyman`: the services, about, contact and working-together covers, and a closing band. */ export const HANDYMAN = [
|
|
135
|
+
hit(6850368, 1280, 853, 'woodworking-carpenter-handyman', 'woodworking, carpenter, handyman'),
|
|
136
|
+
hit(3094035, 1280, 780, 'handyman-construction-site-workers', 'handyman, construction site, workers'),
|
|
137
|
+
hit(3546194, 1280, 853, 'handyman-furniture-assembly-drill', 'handyman, furniture assembly, drill'),
|
|
138
|
+
hit(7671904, 1280, 763, 'wood-handyman-recycling-greece', 'wood, handyman, recycling, greece'),
|
|
139
|
+
hit(6809403, 1280, 855, 'handyman-driller-workman-work', 'handyman, driller, workman, work')
|
|
140
|
+
];
|
|
141
|
+
/** `drywall`: a services record's cover, its name read as "drywall". */ export const DRYWALL = [
|
|
142
|
+
hit(3294517, 1280, 854, 'architecture-family-drywall-house', 'architecture, family, drywall, house')
|
|
143
|
+
];
|
|
144
|
+
/** `handyman describe job`: the closing band "Call to action: describe your job". */ export const HANDYMAN_DESCRIBE_JOB = [
|
|
145
|
+
hit(2904780, 1280, 854, 'dream-job-application-job-request', 'dream job, application, job request')
|
|
146
|
+
];
|
|
147
|
+
/** `doors`: a services record's cover, its name read as "doors". */ export const DOORS = [
|
|
148
|
+
hit(2606818, 1280, 853, 'house-home-door-sidewalk', 'house, home, door, sidewalk')
|
|
149
|
+
];
|
|
150
|
+
/** `rental unit repairs`: a services record's cover. */ export const RENTAL_UNIT_REPAIRS = [
|
|
151
|
+
hit(840835, 1280, 853, 'plumbing-pipe-wrenches-plumber', 'plumbing, pipe, wrenches, plumber')
|
|
152
|
+
];
|
|
153
|
+
// ── Bluebonnet Yard & Landscape: "Landscaping company: lawn care, …" ──
|
|
154
|
+
/** `landscaping`: the "Irrigation repair and tune-ups" picture. */ export const LANDSCAPING = [
|
|
155
|
+
hit(7079355, 1280, 853, 'zen-garden-sand-plants-leaves-bush', 'zen garden, sand, plants, leaves, bush')
|
|
156
|
+
];
|
|
157
|
+
/** `team meeting office`: the business kind's second widened search; the contact and about covers. */ export const TEAM_MEETING_OFFICE = [
|
|
158
|
+
hit(10213524, 1280, 717, 'team-collaboration-meeting-business', 'team, collaboration, meeting, business'),
|
|
159
|
+
hit(10503569, 1280, 714, 'business-meeting-teamwork-office', 'business meeting, teamwork, office')
|
|
160
|
+
];
|
|
161
|
+
// ── Pit Row Tacos: "Taco food trailer: street and breakfast tacos at …" ──
|
|
162
|
+
/** `caterer`: the craft's broad search once "catering" was read as the craft: the home, catering and menu heroes. */ export const CATERER = [
|
|
163
|
+
hit(4797476, 1280, 854, 'food-hotel-buffet-holiday', 'food, hotel, buffet, holiday'),
|
|
164
|
+
hit(7165148, 1280, 853, 'buffet-catering-cafeteria-kitchen', 'buffet, catering, cafeteria, kitchen'),
|
|
165
|
+
hit(315691, 1280, 853, 'buffet-indian-food-spices-lunch', 'buffet, indian food, spices, lunch')
|
|
166
|
+
];
|
|
167
|
+
/** `chef cooking`: the catering craft's maker at work, for the trailer's story. */ export const CHEF_COOKING = [
|
|
168
|
+
hit(4625935, 1280, 819, 'chef-catering-food', 'chef, catering, food')
|
|
169
|
+
];
|
|
170
|
+
/** `catering potato`: the menu record "Potato and egg breakfast taco". */ export const CATERING_POTATO = [
|
|
171
|
+
hit(3440360, 1280, 853, 'potato-new-harvest-nature', 'potato, new harvest, nature')
|
|
172
|
+
];
|
|
173
|
+
/** `breakfast taco`: the visit page's hero. */ export const BREAKFAST_TACO = [
|
|
174
|
+
hit(4942004, 1280, 960, 'tacos-breakfast-tacos-tortilla', 'tacos, breakfast tacos, tortilla')
|
|
175
|
+
];
|
|
176
|
+
/** `asada street taco`, `pastor street taco`, `chicken street taco`, `carnitas street taco`: the street taco records, and the story hero. */ export const STREET_TACOS = [
|
|
177
|
+
hit(4179895, 1280, 720, 'tacos-mexico-tortilla-food-taco', 'tacos, mexico, tortilla, food, taco'),
|
|
178
|
+
hit(4505032, 1280, 960, 'tacos-pastor-tacos-tacos-mexico', 'tacos, pastor, tacos mexico'),
|
|
179
|
+
hit(4511272, 1280, 851, 'tacos-food-chicken-mexican', 'tacos, food, chicken, mexican'),
|
|
180
|
+
hit(5932654, 1280, 853, 'tacos-tortilla-salsa-mexican-food', 'tacos, tortilla, salsa, mexican food')
|
|
181
|
+
];
|
|
182
|
+
/** `catering bacon`: a menu record read as "bacon" and qualified by the craft. */ export const CATERING_BACON = [
|
|
183
|
+
hit(5755336, 1280, 853, 'bacon-egg-cup-dish-breakfast-food', 'bacon, egg cup, dish, breakfast food')
|
|
184
|
+
];
|
|
185
|
+
/** Every photo above, by its Pixabay id. */ export const AGL4065_HITS = new Map([
|
|
186
|
+
MOTOCROSS_RACE_TEAM,
|
|
187
|
+
TEAM,
|
|
188
|
+
TEAM_READY_RIDE,
|
|
189
|
+
UPCOMING_RACE,
|
|
190
|
+
MOTORCYCLE,
|
|
191
|
+
DIRT_BIKE,
|
|
192
|
+
PARTS,
|
|
193
|
+
PART,
|
|
194
|
+
DESCRIBE_PART,
|
|
195
|
+
ATV_TIRE,
|
|
196
|
+
RIDING_GEAR,
|
|
197
|
+
BIKE_PARTS_ORDER,
|
|
198
|
+
ATV_PARTS_ORDER,
|
|
199
|
+
BIKE_IT,
|
|
200
|
+
BIKE_IT_WILL_FIT,
|
|
201
|
+
BIKE_TELL_US_MACHINE,
|
|
202
|
+
BIKE_VISIT_SHOP,
|
|
203
|
+
BIKE_WE_SOURCE_IT,
|
|
204
|
+
TIRES,
|
|
205
|
+
DIRT_BIKE_TIRE,
|
|
206
|
+
GEAR,
|
|
207
|
+
HANDYMAN,
|
|
208
|
+
DRYWALL,
|
|
209
|
+
HANDYMAN_DESCRIBE_JOB,
|
|
210
|
+
DOORS,
|
|
211
|
+
RENTAL_UNIT_REPAIRS,
|
|
212
|
+
LANDSCAPING,
|
|
213
|
+
TEAM_MEETING_OFFICE,
|
|
214
|
+
CATERER,
|
|
215
|
+
CHEF_COOKING,
|
|
216
|
+
CATERING_POTATO,
|
|
217
|
+
BREAKFAST_TACO,
|
|
218
|
+
STREET_TACOS,
|
|
219
|
+
CATERING_BACON
|
|
220
|
+
].flat().map((photo)=>[
|
|
221
|
+
photo.id,
|
|
222
|
+
photo
|
|
223
|
+
]));
|
|
224
|
+
|
|
225
|
+
//# sourceMappingURL=ai-stock-photo-agl4065-recordings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../libs/plugins/ai/src/lib/jobs/fixtures/ai-stock-photo-agl4065-recordings.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { StockPhoto } from '@aglyn/aglyn/plugin-manager/stock-photo-provider'\n\n/**\n * WHAT PIXABAY GAVE SIX BOOTH-KIT SITES ON 2026-10-25 (AGL-4065), AS THEIR\n * MEDIA LIBRARIES RECORD IT.\n *\n * Six guided starts in the test workspace, one per fictional business:\n * Bluebonnet Yard & Landscape (landscaping), Rut Runners Racing (an amateur\n * motocross team), Holeshot Moto Repair (motorcycle and dirt bike repair),\n * Berm & Bolt Moto Parts (dirt bike and ATV parts), Two Oaks Handyman and Pit\n * Row Tacos (a taco trailer). The provider's 24-hour search cache had expired\n * by 2026-10-28, so the answers are read back from what each site's library\n * holds for every photo it copied: its Pixabay id, its stored size, its page\n * address and the search that found it (`stockPhoto.query`).\n *\n * Each list is the photos one search placed, by that search's words, in the\n * order the libraries hold them: a part of what Pixabay answered, never more.\n * A photo's tags are the words of its page address, which Pixabay builds from\n * its leading tags, grouped as the alt text the start wrote from them reads\n * (\"A race car and a motorsport\" is \"race car\", \"motorsport\"); its later\n * tags are not recorded. A search not listed here was not sent on 2026-10-25,\n * and a replay answers it with nothing. No contributor, no contact details.\n */\n\nconst hit = (id: number, width: number, height: number, slug: string, tags: string): StockPhoto =>\n ({\n provider: 'pixabay',\n id: String(id),\n width,\n height,\n pageUrl: `https://pixabay.com/photos/${slug}-${id}/`,\n photographer: 'A Pixabay contributor',\n tags: tags.split(', '),\n downloadUrl: `https://pixabay.com/get/g${id}_1280.jpg`,\n }) as StockPhoto\n\n// ── Rut Runners Racing: \"Amateur motocross race team: rider profiles, …\" ──\n\n/** `motocross race team`: every page's cover hero (the first, 4462875, on all four), and eight of the \"Race events\" records' covers. */\nexport const MOTOCROSS_RACE_TEAM: StockPhoto[] = [\n hit(4462875, 1280, 853, 'race-car-motorsport-pit-lane', 'race car, motorsport, pit lane'),\n hit(10135205, 1280, 912, 'motorcycle-motocross-race-speed', 'motorcycle, motocross, race, speed'),\n hit(7690696, 1280, 853, 'motorcycle-motocross-speed-ktm', 'motorcycle, motocross, speed, ktm'),\n hit(4948269, 1280, 853, 'motocross-race-sport-speed-extreme', 'motocross, race, sport, speed, extreme'),\n hit(4287241, 1280, 853, 'speedway-motorcycle-motorcycle-race', 'speedway, motorcycle, motorcycle race'),\n hit(7097693, 1280, 853, 'motocross-motorbike-bikers-enduro', 'motocross, motorbike, bikers, enduro'),\n hit(8122941, 1280, 853, 'training-motocross-motorcycle-sport', 'training, motocross, motorcycle, sport'),\n hit(6380133, 1280, 853, 'motorcycle-rider-motocross-dust', 'motorcycle, rider, motocross, dust'),\n hit(5546581, 1280, 868, 'motocross-race-sports-racing', 'motocross, race, sports, racing'),\n]\n\n/** `team`: the Riders page's cover, once its own search found nothing it took. */\nexport const TEAM: StockPhoto[] = [hit(386673, 1280, 960, 'team-group-people-motivation', 'team, group, people, motivation')]\n\n/** `team ready ride`: the \"Ready to ride with us?\" closing picture (vertical). */\nexport const TEAM_READY_RIDE: StockPhoto[] = [\n hit(7594065, 853, 1280, 'horse-riding-ride-out-terrain-horse', 'horse riding, ride out, terrain, horse'),\n]\n\n/** `upcoming race`: two \"Race events\" records' covers, named \"Upcoming race 1 (details to be added)\" and on. */\nexport const UPCOMING_RACE: StockPhoto[] = [\n hit(1851269, 1280, 841, 'cyclists-race-bicycles-bikes', 'cyclists, race, bicycles, bikes'),\n hit(394205, 1280, 853, 'horses-horse-tradition-rider', 'horses, horse, tradition, rider'),\n]\n\n// ── Holeshot Moto Repair: \"Motorcycle and dirt bike repair shop: …\" ──\n\n/** `motorcycle`: every page's picture searched it, the home hero (vertical) first. */\nexport const MOTORCYCLE: StockPhoto[] = [\n hit(7749462, 853, 1280, 'indian-motorcycles-motorcycle', 'indian motorcycles, motorcycle'),\n hit(459594, 1280, 960, 'motorcycle-engine-metal-motor', 'motorcycle, engine, metal, motor'),\n hit(7356527, 853, 1280, 'motorcycle-moped-old-motorcycle', 'motorcycle, moped, old motorcycle'),\n hit(7425471, 853, 1280, 'motorcycle-scooter-speed-honda', 'motorcycle, scooter, speed, honda'),\n hit(1084694, 1280, 844, 'motorcycle-race-race-track', 'motorcycle, race, race track'),\n]\n\n// ── Berm & Bolt Moto Parts: \"Dirt bike and ATV parts shop: …\" ──\n\n/** `dirt bike`: the heroes of the home, about, special-order and contact pages. */\nexport const DIRT_BIKE: StockPhoto[] = [\n hit(4187393, 1280, 853, 'bike-enduro-extreme-downhill-sport', 'bike, enduro, extreme, downhill, sport'),\n hit(209489, 1280, 851, 'dirt-bike-motorcycle-jump-autumn', 'dirt bike, motorcycle, jump, autumn'),\n hit(6594869, 1280, 859, 'dirt-bike-dirt-quad-planet-space', 'dirt bike, dirt, quad, planet, space'),\n hit(6938660, 1280, 853, 'dirt-bike-countryside-boys', 'dirt bike, countryside, boys'),\n hit(1868996, 1280, 874, 'dirt-bike-bike-rider-motocross', 'dirt bike, bike, rider, motocross'),\n hit(330815, 1280, 851, 'dirt-bike-motocross-motorcycle', 'dirt bike, motocross, motorcycle'),\n hit(171156, 848, 1280, 'dirt-bike-motocross-bike-motorcycle', 'dirt bike, motocross, bike, motorcycle'),\n hit(4500339, 1280, 853, 'bike-racing-motocross-motorsport', 'bike, racing, motocross, motorsport'),\n]\n\n/** `parts`: the home's \"Shop by collection\" tiles \"Parts for the bike\" and \"Parts for the ranch\". */\nexport const PARTS: StockPhoto[] = [\n hit(4612334, 848, 1280, 'river-part-canoe-blue', 'river, part, canoe, blue'),\n hit(4648358, 1280, 853, 'machined-parts-wrench-part-industry', 'machined parts, wrench, part, industry'),\n]\n\n/** `part`: the product \"Aftermarket Dirt Bike Part\". */\nexport const PART: StockPhoto[] = [hit(4753080, 853, 1280, 'auto-parts-belt-car-parts', 'auto parts, belt, car parts')]\n\n/** `describe part`: the special-order step \"Describe the part\". */\nexport const DESCRIBE_PART: StockPhoto[] = [hit(443674, 1280, 844, 'gear-workshop-spare-part-metal', 'gear, workshop, spare part, metal')]\n\n/** `atv tire`: the product \"ATV Tire\". */\nexport const ATV_TIRE: StockPhoto[] = [\n hit(3267701, 960, 1280, 'tire-tread-car-tire-rubber-pattern', 'tire, tread, car tire, rubber, pattern'),\n]\n\n/** `riding gear`: the product \"Riding Gear Item\". */\nexport const RIDING_GEAR: StockPhoto[] = [\n hit(408364, 1039, 1280, 'gear-mechanics-bikes-transmission', 'gear, mechanics, bikes, transmission'),\n]\n\n/** `bike parts order`: the product \"OEM Dirt Bike Parts Order\". */\nexport const BIKE_PARTS_ORDER: StockPhoto[] = [\n hit(4756327, 853, 1280, 'delivery-man-food-service-order', 'delivery man, food, service, order'),\n]\n\n/** `atv parts order`: the product \"OEM ATV Parts Order\". */\nexport const ATV_PARTS_ORDER: StockPhoto[] = [\n hit(4450390, 960, 1280, 'trees-sync-order-aligned-shapes', 'trees, sync, order, aligned, shapes'),\n]\n\n/** `bike it`: the special-order step \"Pick it up in store\". */\nexport const BIKE_IT: StockPhoto[] = [hit(4367285, 1280, 853, 'cycling-cyclists-cycle-racing', 'cycling, cyclists, cycle racing')]\n\n/** `bike it will fit`: the closing band \"Not sure it will fit?\". */\nexport const BIKE_IT_WILL_FIT: StockPhoto[] = [\n hit(7576306, 1280, 960, 'helmet-bicycle-woman-cyclist', 'helmet, bicycle, woman, cyclist'),\n]\n\n/** `bike tell us machine`: the special-order step \"Tell us your machine\". */\nexport const BIKE_TELL_US_MACHINE: StockPhoto[] = [\n hit(5309140, 1280, 850, 'machine-design-bike-technology', 'machine, design, bike, technology'),\n]\n\n/** `bike visit shop`: the about page's \"Visit the shop\" band. */\nexport const BIKE_VISIT_SHOP: StockPhoto[] = [hit(7006089, 1280, 853, 'scooter-store-shop-street-ride', 'scooter, store, shop, street, ride')]\n\n/** `bike we source it`: the special-order step \"We source it\". */\nexport const BIKE_WE_SOURCE_IT: StockPhoto[] = [\n hit(4369056, 1280, 853, 'bike-bike-race-helmet-cyclists', 'bike, bike race, helmet, cyclists'),\n]\n\n/** `tires`: the collection tile \"Tires for every track and trail\". */\nexport const TIRES: StockPhoto[] = [hit(4891682, 960, 1280, 'tire-highway-wheel-tires-wheels', 'tire, highway, wheel, tires, wheels')]\n\n/** `dirt bike tire`: the product \"Dirt Bike Tire\". */\nexport const DIRT_BIKE_TIRE: StockPhoto[] = [\n hit(7284019, 853, 1280, 'bike-tire-motorcycle-motocross', 'bike tire, motorcycle, motocross'),\n]\n\n/** `gear`: the collection tile \"Gear for ride day\". */\nexport const GEAR: StockPhoto[] = [hit(2291916, 1280, 853, 'gears-bicycle-chain-transmission', 'gears, bicycle, chain, transmission')]\n\n// ── Two Oaks Handyman: \"Handyman business: home repairs, drywall, …\" ──\n\n/** `handyman`: the services, about, contact and working-together covers, and a closing band. */\nexport const HANDYMAN: StockPhoto[] = [\n hit(6850368, 1280, 853, 'woodworking-carpenter-handyman', 'woodworking, carpenter, handyman'),\n hit(3094035, 1280, 780, 'handyman-construction-site-workers', 'handyman, construction site, workers'),\n hit(3546194, 1280, 853, 'handyman-furniture-assembly-drill', 'handyman, furniture assembly, drill'),\n hit(7671904, 1280, 763, 'wood-handyman-recycling-greece', 'wood, handyman, recycling, greece'),\n hit(6809403, 1280, 855, 'handyman-driller-workman-work', 'handyman, driller, workman, work'),\n]\n\n/** `drywall`: a services record's cover, its name read as \"drywall\". */\nexport const DRYWALL: StockPhoto[] = [\n hit(3294517, 1280, 854, 'architecture-family-drywall-house', 'architecture, family, drywall, house'),\n]\n\n/** `handyman describe job`: the closing band \"Call to action: describe your job\". */\nexport const HANDYMAN_DESCRIBE_JOB: StockPhoto[] = [\n hit(2904780, 1280, 854, 'dream-job-application-job-request', 'dream job, application, job request'),\n]\n\n/** `doors`: a services record's cover, its name read as \"doors\". */\nexport const DOORS: StockPhoto[] = [hit(2606818, 1280, 853, 'house-home-door-sidewalk', 'house, home, door, sidewalk')]\n\n/** `rental unit repairs`: a services record's cover. */\nexport const RENTAL_UNIT_REPAIRS: StockPhoto[] = [\n hit(840835, 1280, 853, 'plumbing-pipe-wrenches-plumber', 'plumbing, pipe, wrenches, plumber'),\n]\n\n// ── Bluebonnet Yard & Landscape: \"Landscaping company: lawn care, …\" ──\n\n/** `landscaping`: the \"Irrigation repair and tune-ups\" picture. */\nexport const LANDSCAPING: StockPhoto[] = [\n hit(7079355, 1280, 853, 'zen-garden-sand-plants-leaves-bush', 'zen garden, sand, plants, leaves, bush'),\n]\n\n/** `team meeting office`: the business kind's second widened search; the contact and about covers. */\nexport const TEAM_MEETING_OFFICE: StockPhoto[] = [\n hit(10213524, 1280, 717, 'team-collaboration-meeting-business', 'team, collaboration, meeting, business'),\n hit(10503569, 1280, 714, 'business-meeting-teamwork-office', 'business meeting, teamwork, office'),\n]\n\n// ── Pit Row Tacos: \"Taco food trailer: street and breakfast tacos at …\" ──\n\n/** `caterer`: the craft's broad search once \"catering\" was read as the craft: the home, catering and menu heroes. */\nexport const CATERER: StockPhoto[] = [\n hit(4797476, 1280, 854, 'food-hotel-buffet-holiday', 'food, hotel, buffet, holiday'),\n hit(7165148, 1280, 853, 'buffet-catering-cafeteria-kitchen', 'buffet, catering, cafeteria, kitchen'),\n hit(315691, 1280, 853, 'buffet-indian-food-spices-lunch', 'buffet, indian food, spices, lunch'),\n]\n\n/** `chef cooking`: the catering craft's maker at work, for the trailer's story. */\nexport const CHEF_COOKING: StockPhoto[] = [hit(4625935, 1280, 819, 'chef-catering-food', 'chef, catering, food')]\n\n/** `catering potato`: the menu record \"Potato and egg breakfast taco\". */\nexport const CATERING_POTATO: StockPhoto[] = [\n hit(3440360, 1280, 853, 'potato-new-harvest-nature', 'potato, new harvest, nature'),\n]\n\n/** `breakfast taco`: the visit page's hero. */\nexport const BREAKFAST_TACO: StockPhoto[] = [\n hit(4942004, 1280, 960, 'tacos-breakfast-tacos-tortilla', 'tacos, breakfast tacos, tortilla'),\n]\n\n/** `asada street taco`, `pastor street taco`, `chicken street taco`, `carnitas street taco`: the street taco records, and the story hero. */\nexport const STREET_TACOS: StockPhoto[] = [\n hit(4179895, 1280, 720, 'tacos-mexico-tortilla-food-taco', 'tacos, mexico, tortilla, food, taco'),\n hit(4505032, 1280, 960, 'tacos-pastor-tacos-tacos-mexico', 'tacos, pastor, tacos mexico'),\n hit(4511272, 1280, 851, 'tacos-food-chicken-mexican', 'tacos, food, chicken, mexican'),\n hit(5932654, 1280, 853, 'tacos-tortilla-salsa-mexican-food', 'tacos, tortilla, salsa, mexican food'),\n]\n\n/** `catering bacon`: a menu record read as \"bacon\" and qualified by the craft. */\nexport const CATERING_BACON: StockPhoto[] = [\n hit(5755336, 1280, 853, 'bacon-egg-cup-dish-breakfast-food', 'bacon, egg cup, dish, breakfast food'),\n]\n\n/** Every photo above, by its Pixabay id. */\nexport const AGL4065_HITS: ReadonlyMap<string, StockPhoto> = new Map(\n [\n MOTOCROSS_RACE_TEAM,\n TEAM,\n TEAM_READY_RIDE,\n UPCOMING_RACE,\n MOTORCYCLE,\n DIRT_BIKE,\n PARTS,\n PART,\n DESCRIBE_PART,\n ATV_TIRE,\n RIDING_GEAR,\n BIKE_PARTS_ORDER,\n ATV_PARTS_ORDER,\n BIKE_IT,\n BIKE_IT_WILL_FIT,\n BIKE_TELL_US_MACHINE,\n BIKE_VISIT_SHOP,\n BIKE_WE_SOURCE_IT,\n TIRES,\n DIRT_BIKE_TIRE,\n GEAR,\n HANDYMAN,\n DRYWALL,\n HANDYMAN_DESCRIBE_JOB,\n DOORS,\n RENTAL_UNIT_REPAIRS,\n LANDSCAPING,\n TEAM_MEETING_OFFICE,\n CATERER,\n CHEF_COOKING,\n CATERING_POTATO,\n BREAKFAST_TACO,\n STREET_TACOS,\n CATERING_BACON,\n ]\n .flat()\n .map((photo) => [photo.id, photo] as const),\n)\n"],"names":["hit","id","width","height","slug","tags","provider","String","pageUrl","photographer","split","downloadUrl","MOTOCROSS_RACE_TEAM","TEAM","TEAM_READY_RIDE","UPCOMING_RACE","MOTORCYCLE","DIRT_BIKE","PARTS","PART","DESCRIBE_PART","ATV_TIRE","RIDING_GEAR","BIKE_PARTS_ORDER","ATV_PARTS_ORDER","BIKE_IT","BIKE_IT_WILL_FIT","BIKE_TELL_US_MACHINE","BIKE_VISIT_SHOP","BIKE_WE_SOURCE_IT","TIRES","DIRT_BIKE_TIRE","GEAR","HANDYMAN","DRYWALL","HANDYMAN_DESCRIBE_JOB","DOORS","RENTAL_UNIT_REPAIRS","LANDSCAPING","TEAM_MEETING_OFFICE","CATERER","CHEF_COOKING","CATERING_POTATO","BREAKFAST_TACO","STREET_TACOS","CATERING_BACON","AGL4065_HITS","Map","flat","map","photo"],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import type { StockPhoto } from '@aglyn/aglyn/plugin-manager/stock-photo-provider';
|
|
18
|
+
/** Every recorded hit, by id. */
|
|
19
|
+
export declare const AGL4092_HITS: ReadonlyMap<string, StockPhoto>;
|
|
20
|
+
/** What each search answered on 2026-10-28, by its words; its shape as it was asked. */
|
|
21
|
+
export declare const AGL4092_ANSWERS: Readonly<Record<string, readonly StockPhoto[]>>;
|
|
22
|
+
/**
|
|
23
|
+
* What each people search answered (the people category), by its words. Its
|
|
24
|
+
* first photo was production's, read by id (it was not in the 2026-10-28 answer).
|
|
25
|
+
*/
|
|
26
|
+
export declare const AGL4092_PEOPLE_ANSWERS: Readonly<Record<string, readonly StockPhoto[]>>;
|