@aglyn/plugins-ai 1.0.0-beta.288 → 1.0.0-beta.290

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/package.json +17 -17
  2. package/src/lib/activity/ai-activity-actions.d.ts +3 -2
  3. package/src/lib/activity/ai-activity-actions.js +3 -0
  4. package/src/lib/activity/ai-activity-actions.js.map +1 -1
  5. package/src/lib/components/ai-job-requests.d.ts +2 -0
  6. package/src/lib/components/ai-job-requests.js +2 -0
  7. package/src/lib/components/ai-job-requests.js.map +1 -1
  8. package/src/lib/components/ai-site-build-page.component.js +4 -0
  9. package/src/lib/components/ai-site-build-page.component.js.map +1 -1
  10. package/src/lib/components/ai-site-import-job.component.d.ts +6 -1
  11. package/src/lib/components/ai-site-import-job.component.js +124 -17
  12. package/src/lib/components/ai-site-import-job.component.js.map +1 -1
  13. package/src/lib/components/ai-site-import-start.component.d.ts +6 -0
  14. package/src/lib/components/ai-site-import-start.component.js +18 -4
  15. package/src/lib/components/ai-site-import-start.component.js.map +1 -1
  16. package/src/lib/components/ai-site-start-card.component.js +2 -1
  17. package/src/lib/components/ai-site-start-card.component.js.map +1 -1
  18. package/src/lib/jobs/ai-image-reads.d.ts +20 -2
  19. package/src/lib/jobs/ai-image-reads.js +47 -0
  20. package/src/lib/jobs/ai-image-reads.js.map +1 -1
  21. package/src/lib/jobs/ai-job-import-step.d.ts +53 -3
  22. package/src/lib/jobs/ai-job-import-step.js +386 -64
  23. package/src/lib/jobs/ai-job-import-step.js.map +1 -1
  24. package/src/lib/jobs/ai-job-layout-language.d.ts +33 -0
  25. package/src/lib/jobs/ai-job-layout-language.js +75 -1
  26. package/src/lib/jobs/ai-job-layout-language.js.map +1 -1
  27. package/src/lib/jobs/ai-job-layout-step.js +8 -3
  28. package/src/lib/jobs/ai-job-layout-step.js.map +1 -1
  29. package/src/lib/jobs/ai-job-page-language.d.ts +29 -0
  30. package/src/lib/jobs/ai-job-page-language.js +178 -2
  31. package/src/lib/jobs/ai-job-page-language.js.map +1 -1
  32. package/src/lib/jobs/ai-job-page-step.js +3 -0
  33. package/src/lib/jobs/ai-job-page-step.js.map +1 -1
  34. package/src/lib/jobs/ai-site-import-document.d.ts +117 -0
  35. package/src/lib/jobs/ai-site-import-document.js +710 -0
  36. package/src/lib/jobs/ai-site-import-document.js.map +1 -0
  37. package/src/lib/jobs/ai-site-import-look.d.ts +112 -0
  38. package/src/lib/jobs/ai-site-import-look.js +402 -0
  39. package/src/lib/jobs/ai-site-import-look.js.map +1 -0
  40. package/src/lib/jobs/ai-site-import-publish.d.ts +41 -0
  41. package/src/lib/jobs/ai-site-import-publish.js +92 -0
  42. package/src/lib/jobs/ai-site-import-publish.js.map +1 -0
  43. package/src/lib/jobs/ai-theme-brand-inputs.d.ts +27 -2
  44. package/src/lib/jobs/ai-theme-brand-inputs.js +37 -8
  45. package/src/lib/jobs/ai-theme-brand-inputs.js.map +1 -1
  46. package/src/lib/layout-language/ai-layout-frame.d.ts +17 -0
  47. package/src/lib/layout-language/ai-layout-frame.js +73 -2
  48. package/src/lib/layout-language/ai-layout-frame.js.map +1 -1
  49. package/src/lib/layout-language/ai-layout-language.d.ts +43 -0
  50. package/src/lib/layout-language/ai-layout-language.js +199 -0
  51. package/src/lib/layout-language/ai-layout-language.js.map +1 -1
  52. package/src/lib/model/ai-credit-estimate.d.ts +15 -0
  53. package/src/lib/model/ai-credit-estimate.js +14 -1
  54. package/src/lib/model/ai-credit-estimate.js.map +1 -1
  55. package/src/lib/model/ai-jobs.types.d.ts +13 -1
  56. package/src/lib/model/ai-jobs.types.js.map +1 -1
  57. package/src/lib/model/ai-site-import-view.d.ts +47 -3
  58. package/src/lib/model/ai-site-import-view.js +122 -20
  59. package/src/lib/model/ai-site-import-view.js.map +1 -1
  60. package/src/lib/model/ai-site-import.d.ts +232 -7
  61. package/src/lib/model/ai-site-import.js +365 -35
  62. package/src/lib/model/ai-site-import.js.map +1 -1
  63. package/src/lib/runtime/ai-doctrine-validators.d.ts +18 -0
  64. package/src/lib/runtime/ai-doctrine-validators.js +16 -5
  65. package/src/lib/runtime/ai-doctrine-validators.js.map +1 -1
  66. package/src/lib/runtime/ai-palette.generated.js +31 -0
  67. package/src/lib/runtime/ai-palette.generated.js.map +1 -1
  68. package/src/lib/server/ai-image-reads-route.js +24 -1
  69. package/src/lib/server/ai-image-reads-route.js.map +1 -1
  70. package/src/lib/server/ai-jobs-resume.js +7 -1
  71. package/src/lib/server/ai-jobs-resume.js.map +1 -1
  72. package/src/lib/site-import/fixtures/aglyn-com-recordings.d.ts +57 -0
  73. package/src/lib/site-import/fixtures/aglyn-com-recordings.js +172 -0
  74. package/src/lib/site-import/fixtures/aglyn-com-recordings.js.map +1 -0
  75. package/src/lib/site-import/site-import-crawl.d.ts +32 -7
  76. package/src/lib/site-import/site-import-crawl.js +133 -44
  77. package/src/lib/site-import/site-import-crawl.js.map +1 -1
  78. package/src/lib/site-import/site-import-edge-server.d.ts +31 -0
  79. package/src/lib/site-import/site-import-edge-server.js +31 -0
  80. package/src/lib/site-import/site-import-edge-server.js.map +1 -0
  81. package/src/lib/site-import/site-import-edge.d.ts +44 -0
  82. package/src/lib/site-import/site-import-edge.js +108 -0
  83. package/src/lib/site-import/site-import-edge.js.map +1 -0
  84. package/src/lib/site-import/site-import-html.d.ts +73 -3
  85. package/src/lib/site-import/site-import-html.js +332 -45
  86. package/src/lib/site-import/site-import-html.js.map +1 -1
  87. package/src/lib/site-import/site-import-images.d.ts +22 -0
  88. package/src/lib/site-import/site-import-images.js +78 -2
  89. package/src/lib/site-import/site-import-images.js.map +1 -1
  90. package/src/lib/site-import/site-import-page.d.ts +44 -2
  91. package/src/lib/site-import/site-import-page.js +116 -16
  92. package/src/lib/site-import/site-import-page.js.map +1 -1
@@ -16,9 +16,12 @@
16
16
  */
17
17
  import { type PluginMediaIngest } from '@aglyn/aglyn/plugin-manager/plugin-media-ingest';
18
18
  import type { AiJob, AiJobItemLedger } from '../model/ai-jobs.types';
19
- import { type AiSiteImportLeftOutReason, type AiSiteImportPage, type AiSiteImportPageRead, type AiSiteImportState, type AiSiteImportWave } from '../model/ai-site-import';
19
+ import { type AiSiteImportBuild, type AiSiteImportHome, type AiSiteImportLeftOutReason, type AiSiteImportPage, type AiSiteImportPageRead, type AiSiteImportState, type AiSiteImportWave } from '../model/ai-site-import';
20
20
  import { crawlSiteForImport, type SiteImportCrawlSeams, type SiteImportInventory } from '../site-import/site-import-crawl';
21
21
  import { type SiteImportPhotosDeps } from '../site-import/site-import-images';
22
+ import { type AiSiteImportDocument } from './ai-site-import-document';
23
+ import { aiRunSiteImportLook, type AiSiteImportLookDeps } from './ai-site-import-look';
24
+ import { aiPublishImportedWave } from './ai-site-import-publish';
22
25
  import { fileSiteImportReview } from '../site-import/site-import-review';
23
26
  import { type AiJobAdmission } from './ai-job-admission';
24
27
  import { readAiScreenRoom } from './ai-job-drafts';
@@ -91,6 +94,13 @@ export interface AiSiteImportStepDeps {
91
94
  pageWritten?: typeof aiSitePageWritten;
92
95
  mintId?: () => string;
93
96
  clock?: () => number;
97
+ /** The first wave's look pass (AGL-4084), and what it reads and writes through. */
98
+ look?: typeof aiRunSiteImportLook;
99
+ lookDeps?: AiSiteImportLookDeps;
100
+ /** A closed wave's pages into the site's preview (AGL-4084). */
101
+ publishWave?: typeof aiPublishImportedWave;
102
+ /** The words a page that came in shows, read off its draft (AGL-4084). */
103
+ draftWords?: (firestore: FirebaseFirestore.Firestore, hostId: string, draftId: string) => Promise<number | null>;
94
104
  }
95
105
  /** The proved domain an import job is for, or `null`. */
96
106
  export declare function aiSiteImportDomainOf(job: Pick<AiJob, 'inputs'>): string | null;
@@ -100,12 +110,41 @@ export declare function aiSiteImportDomainOf(job: Pick<AiJob, 'inputs'>): string
100
110
  * seven. A page of a later wave is not linked: it may never be brought in.
101
111
  */
102
112
  export declare function aiSiteImportLinkedPages(state: AiSiteImportState, items: readonly AiJobItemLedger[], wave: number): AiLayoutSitePage[];
103
- /** The header and footer's job: a layout of the site's name, linking the wave's pages, in the layout language. */
113
+ /**
114
+ * How a page is built (AGL-4084): a collection's page, or a long page, is
115
+ * copied as it is; a main page is arranged. The home page is always
116
+ * arranged, however long: it is the site's front door, never a document.
117
+ */
118
+ export declare function aiSiteImportBuildOf(page: Pick<AiSiteImportPage, 'group' | 'words' | 'slug'>): AiSiteImportBuild;
119
+ /**
120
+ * The name the header and footer carry (AGL-4084): the site's own name where
121
+ * it is the name the person gave Create site but for its case or its
122
+ * punctuation, else the person's.
123
+ */
124
+ export declare function aiSiteImportBrandName(given: string, own: string): string;
125
+ /** The header and footer's job: a layout of the site's brand, linking the wave's pages, in the layout language. */
104
126
  export declare function aiSiteImportFrameJob(job: AiJob, state: AiSiteImportState, wave: AiSiteImportWave, items: readonly AiJobItemLedger[]): AiJob;
105
- /** One page's job: a page job's plan of one screen, its sections from the old page's headings, its text fenced. */
127
+ /** The page brought in, as its page job carries it: its lines, its photos, and the pages its links may go to (AGL-4084). */
128
+ export declare function aiSiteImportDocumentFor(state: AiSiteImportState, page: AiSiteImportPage): AiSiteImportDocument | null;
129
+ /** One page's job: a page job's plan of one screen, its sections the old page's own, its words carried as they are. */
106
130
  export declare function aiSiteImportPageJob(job: AiJob, state: AiSiteImportState, page: AiSiteImportPage, items: readonly AiJobItemLedger[]): AiJob;
131
+ /** What the home page says of the site as a whole (AGL-4084), kept for the look, the header and footer and the listing. */
132
+ export declare function aiSiteImportHomeOf(crawled: Pick<SiteImportInventory, 'pages'>): AiSiteImportHome | null;
107
133
  /** The least time the import's next pass needs: a read's, a photo pass's, or the time of the step its unit is handed to. */
108
134
  export declare function aiSiteImportRunMinimumMs(job: AiJob, runnerFor?: typeof aiJobStepRunnerFor): number;
135
+ /**
136
+ * The state with how each page is built (AGL-4084): from its main region's
137
+ * words as the inventory listed them, and again from a wave's fresh read,
138
+ * which is what the page is built from.
139
+ */
140
+ export declare function aiSiteImportWithBuilds(state: AiSiteImportState, mainWords?: ReadonlyMap<string, number>): AiSiteImportState;
141
+ /** The words a stored page shows (AGL-4084): its text, its list lines and its buttons. */
142
+ export declare function aiSiteImportShownWords(nodes: Readonly<Record<string, unknown>>): number;
143
+ /**
144
+ * The review a wave that went live in the site's preview parks on (AGL-4084):
145
+ * where its pages are now, who sees them, and the next wave's start.
146
+ */
147
+ export declare function aiSiteImportPreviewMessage(state: AiSiteImportState, wave: Pick<AiSiteImportWave, 'label'>, published: number): string;
109
148
  export declare function createAiJobImportStep(deps?: AiSiteImportStepDeps): AiJobStepRunner;
110
149
  /** The home page's menu, as same-site paths in its order. */
111
150
  export declare function siteImportMenu(crawled: Pick<SiteImportInventory, 'pages' | 'origins'>): string[];
@@ -118,6 +157,17 @@ export declare function siteImportWaveReads(asked: readonly AiSiteImportPage[],
118
157
  /** The read's clock ran out: a page it did not reach is left for the next pass, not left out. */
119
158
  cutShort?: boolean;
120
159
  }): Map<string, AiSiteImportPageRead | AiSiteImportLeftOutReason>;
160
+ /**
161
+ * "Start every remaining wave" (AGL-4083, wired by AGL-4084), as the resume
162
+ * door writes it onto an import waiting to start its next wave: every
163
+ * remaining wave starts after the one before it closes, with no review
164
+ * between them, and the person's one start is the one the day's limit
165
+ * counts. `null` when the job is not an import waiting for a wave.
166
+ */
167
+ export declare function aiSiteImportStartAllUpdate(job: Pick<AiJob, 'kind' | 'status' | 'review' | 'siteImport'>): {
168
+ 'siteImport.autoContinue': true;
169
+ 'siteImport.autoContinueFrom': number;
170
+ } | null;
121
171
  export interface AiSiteImportAdmissionDeps {
122
172
  releaseFlagOn?: (orgId: string) => Promise<boolean>;
123
173
  ownership?: (orgId: string, domain: string) => Promise<AiSiteImportOwnership | null>;