slotdeck 0.1.1 → 0.2.0
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/README.md +94 -8
- package/dist/deck/alternatives.d.ts +34 -0
- package/dist/deck/alternatives.js +370 -0
- package/dist/deck/alternatives.js.map +1 -0
- package/dist/deck/design.d.ts +40 -0
- package/dist/deck/design.js +112 -0
- package/dist/deck/design.js.map +1 -0
- package/dist/deck/validate.d.ts +18 -0
- package/dist/deck/validate.js +44 -6
- package/dist/deck/validate.js.map +1 -1
- package/dist/index.d.ts +23 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/gemini.d.ts +4 -0
- package/dist/llm/gemini.js +43 -7
- package/dist/llm/gemini.js.map +1 -1
- package/dist/llm/provider.d.ts +12 -0
- package/dist/node.d.ts +7 -0
- package/dist/node.js +29 -0
- package/dist/node.js.map +1 -1
- package/dist/plan/catalog.d.ts +11 -1
- package/dist/plan/catalog.js +23 -8
- package/dist/plan/catalog.js.map +1 -1
- package/dist/plan/edit.js +14 -6
- package/dist/plan/edit.js.map +1 -1
- package/dist/plan/plan.d.ts +26 -2
- package/dist/plan/plan.js +58 -17
- package/dist/plan/plan.js.map +1 -1
- package/dist/plan/review.d.ts +43 -0
- package/dist/plan/review.js +141 -0
- package/dist/plan/review.js.map +1 -0
- package/dist/plan/write.d.ts +13 -1
- package/dist/plan/write.js +40 -7
- package/dist/plan/write.js.map +1 -1
- package/dist/preview/pagus.d.ts +30 -0
- package/dist/preview/pagus.js +45 -0
- package/dist/preview/pagus.js.map +1 -0
- package/dist/preview/patterns.d.ts +27 -0
- package/dist/preview/patterns.js +35 -0
- package/dist/preview/patterns.js.map +1 -0
- package/dist/preview/provider.d.ts +30 -0
- package/dist/preview/provider.js +11 -0
- package/dist/preview/provider.js.map +1 -0
- package/dist/render/render.d.ts +18 -1
- package/dist/render/render.js +32 -12
- package/dist/render/render.js.map +1 -1
- package/dist/render/repeat.d.ts +17 -2
- package/dist/render/repeat.js +150 -4
- package/dist/render/repeat.js.map +1 -1
- package/dist/render/text.d.ts +6 -0
- package/dist/render/text.js +24 -0
- package/dist/render/text.js.map +1 -1
- package/dist/template/budgets.d.ts +33 -0
- package/dist/template/budgets.js +38 -0
- package/dist/template/budgets.js.map +1 -0
- package/dist/template/change.d.ts +19 -1
- package/dist/template/change.js +45 -3
- package/dist/template/change.js.map +1 -1
- package/dist/template/check.d.ts +3 -0
- package/dist/template/check.js +53 -3
- package/dist/template/check.js.map +1 -1
- package/dist/template/derive.d.ts +54 -0
- package/dist/template/derive.js +402 -0
- package/dist/template/derive.js.map +1 -0
- package/dist/template/draft.d.ts +7 -0
- package/dist/template/draft.js +17 -1
- package/dist/template/draft.js.map +1 -1
- package/dist/template/instruct.js +15 -7
- package/dist/template/instruct.js.map +1 -1
- package/dist/template/manifest.d.ts +38 -0
- package/dist/template/manifest.js +43 -1
- package/dist/template/manifest.js.map +1 -1
- package/dist/template/sample.d.ts +17 -0
- package/dist/template/sample.js +31 -5
- package/dist/template/sample.js.map +1 -1
- package/dist/text/fontkit.d.ts +18 -0
- package/dist/text/fontkit.js +91 -0
- package/dist/text/fontkit.js.map +1 -0
- package/dist/text/fonts.d.ts +45 -0
- package/dist/text/fonts.js +59 -0
- package/dist/text/fonts.js.map +1 -0
- package/dist/text/layout.d.ts +12 -0
- package/dist/text/layout.js +104 -0
- package/dist/text/layout.js.map +1 -0
- package/dist/text/measure.d.ts +85 -0
- package/dist/text/measure.js +369 -0
- package/dist/text/measure.js.map +1 -0
- package/dist/text/styles.d.ts +123 -0
- package/dist/text/styles.js +417 -0
- package/dist/text/styles.js.map +1 -0
- package/dist/tools.d.ts +12 -0
- package/dist/tools.js +38 -6
- package/dist/tools.js.map +1 -1
- package/docs/README.md +16 -5
- package/docs/api-reference.md +291 -9
- package/docs/changelog.md +242 -0
- package/docs/chat-tools.md +26 -5
- package/docs/deck-format.md +6 -0
- package/docs/design-checks.md +216 -0
- package/docs/generating.md +43 -4
- package/docs/layout-freedom.md +278 -3
- package/docs/manifest-format.md +20 -3
- package/docs/preview.md +217 -0
- package/docs/providers.md +49 -4
- package/docs/rendering.md +8 -0
- package/docs/template-studio.md +121 -12
- package/docs/text-fit.md +456 -0
- package/docs/troubleshooting.md +21 -2
- package/package.json +7 -1
package/dist/plan/plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/plan/plan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/plan/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { DesignOptions } from '../deck/design.ts';
|
|
2
|
+
import type { DeckSpec } from '../deck/spec.ts';
|
|
3
|
+
import type { Issue, LayoutMode } from '../deck/validate.ts';
|
|
4
|
+
import type { LlmProvider } from '../llm/provider.ts';
|
|
5
|
+
import type { PreviewProvider } from '../preview/provider.ts';
|
|
6
|
+
import type { Template } from '../render/render.ts';
|
|
7
|
+
import type { AssetDef, IconDef } from './catalog.ts';
|
|
8
|
+
/**
|
|
9
|
+
* Looks at a draft deck and returns problems to send back to the writing model. Each problem
|
|
10
|
+
* names a slide, and a slot when it can. Give one to the planner as `review`.
|
|
11
|
+
*/
|
|
12
|
+
export type DeckReview = (deck: DeckSpec, context: {
|
|
13
|
+
signal?: AbortSignal;
|
|
14
|
+
}) => Issue[] | Promise<Issue[]>;
|
|
15
|
+
/**
|
|
16
|
+
* A review made of the code-only design checks ({@link checkDesign}): boxes left mostly empty,
|
|
17
|
+
* uneven cards, headings that end in a lone word. Overflow is left out, since validation reports
|
|
18
|
+
* it already. The template must be loaded with fonts. No model is called.
|
|
19
|
+
*/
|
|
20
|
+
export declare function designReview(template: Template, options?: DesignOptions): DeckReview;
|
|
21
|
+
export interface VisionReviewOptions {
|
|
22
|
+
template: Template;
|
|
23
|
+
/** A model that can look at pictures. It is asked once for every `slidesPerRequest` slides. */
|
|
24
|
+
llm: LlmProvider;
|
|
25
|
+
/** Draws the draft. It must give bitmap pictures (PNG, JPEG, WebP or GIF): a model cannot read SVG. */
|
|
26
|
+
preview: PreviewProvider;
|
|
27
|
+
/** The app's icons and supplied pictures, so that they are drawn as they are. Any other picture is drawn as a plain rectangle. */
|
|
28
|
+
icons?: IconDef[];
|
|
29
|
+
assets?: AssetDef[];
|
|
30
|
+
/** As for `renderDeck`. Defaults to `adaptive`, so that a draft with optional slots left out can be drawn. */
|
|
31
|
+
layout?: LayoutMode;
|
|
32
|
+
/** How many slides are shown to the model in one request. Defaults to 6. */
|
|
33
|
+
slidesPerRequest?: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A review by a model that looks at pictures of the draft: the deck is rendered with stand-ins
|
|
37
|
+
* for pictures that do not exist yet, drawn by the preview provider, and shown to the model with
|
|
38
|
+
* the text of each slot. What the model reports comes back as problems for the repair round.
|
|
39
|
+
*
|
|
40
|
+
* It is only as good as the pictures. A preview that differs from PowerPoint makes the model
|
|
41
|
+
* report problems that are not there, so use a provider whose pictures can be trusted.
|
|
42
|
+
*/
|
|
43
|
+
export declare function visionReview(options: VisionReviewOptions): DeckReview;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// A second look at a draft, beyond the template's limits: problems found here go back to the
|
|
2
|
+
// writing model in the same repair round as the limits it broke. Nothing reviews a draft unless
|
|
3
|
+
// the caller asks for it.
|
|
4
|
+
import { checkDesign } from '../deck/design.js';
|
|
5
|
+
import { isImageRef } from '../deck/spec.js';
|
|
6
|
+
import { DeckValidationError } from '../deck/validate.js';
|
|
7
|
+
import { renderDeck } from '../render/render.js';
|
|
8
|
+
import { effectiveSlots } from '../template/manifest.js';
|
|
9
|
+
import { solidPng } from '../util/png.js';
|
|
10
|
+
/**
|
|
11
|
+
* A review made of the code-only design checks ({@link checkDesign}): boxes left mostly empty,
|
|
12
|
+
* uneven cards, headings that end in a lone word. Overflow is left out, since validation reports
|
|
13
|
+
* it already. The template must be loaded with fonts. No model is called.
|
|
14
|
+
*/
|
|
15
|
+
export function designReview(template, options = {}) {
|
|
16
|
+
return (deck) => checkDesign(template, deck, { kinds: ['empty', 'uneven', 'orphan'], ...options });
|
|
17
|
+
}
|
|
18
|
+
const BITMAP = /^image\/(png|jpe?g|webp|gif)$/i;
|
|
19
|
+
const SYSTEM = [
|
|
20
|
+
'You check pictures of presentation slides for layout problems, for the program that wrote their text.',
|
|
21
|
+
'You report only what can be seen in a picture and fixed by changing the text of a slot. You do not judge wording, facts or the design of the template.',
|
|
22
|
+
].join('\n');
|
|
23
|
+
const INSTRUCTIONS = [
|
|
24
|
+
'Report a problem only when you can see it in the picture:',
|
|
25
|
+
'- text that is cut off, runs out of its box or off the slide, or lies over other text or over a picture',
|
|
26
|
+
'- text too small to read',
|
|
27
|
+
'- a box, a card or a whole slide left mostly empty beside others that are full',
|
|
28
|
+
'- a heading that ends with one word on a line of its own',
|
|
29
|
+
'Photos may be plain coloured rectangles that stand in for pictures not made yet: ignore them.',
|
|
30
|
+
'Name the slot the problem is in when you can tell which it is, and say in one sentence what is wrong and how the text should change (shorter, longer, about how much).',
|
|
31
|
+
'If a slide has no such problem, report nothing for it. Do not report doubts.',
|
|
32
|
+
].join('\n');
|
|
33
|
+
const short = (text) => (text.length > 120 ? `${text.slice(0, 119)}…` : text);
|
|
34
|
+
/**
|
|
35
|
+
* A review by a model that looks at pictures of the draft: the deck is rendered with stand-ins
|
|
36
|
+
* for pictures that do not exist yet, drawn by the preview provider, and shown to the model with
|
|
37
|
+
* the text of each slot. What the model reports comes back as problems for the repair round.
|
|
38
|
+
*
|
|
39
|
+
* It is only as good as the pictures. A preview that differs from PowerPoint makes the model
|
|
40
|
+
* report problems that are not there, so use a provider whose pictures can be trusted.
|
|
41
|
+
*/
|
|
42
|
+
export function visionReview(options) {
|
|
43
|
+
const { template, llm, preview } = options;
|
|
44
|
+
const supplied = new Map([...(options.icons ?? []), ...(options.assets ?? [])].map((item) => [item.id, item.data]));
|
|
45
|
+
const standIn = solidPng(96, 64, [176, 184, 190]);
|
|
46
|
+
const perRequest = Math.max(1, options.slidesPerRequest ?? 6);
|
|
47
|
+
return async (deck, { signal }) => {
|
|
48
|
+
const assets = {};
|
|
49
|
+
for (const slide of deck.slides) {
|
|
50
|
+
for (const value of Object.values(slide.slots ?? {}))
|
|
51
|
+
if (isImageRef(value))
|
|
52
|
+
assets[value.asset] = supplied.get(value.asset) ?? standIn;
|
|
53
|
+
}
|
|
54
|
+
let pptx;
|
|
55
|
+
try {
|
|
56
|
+
pptx = renderDeck(template, deck, { assets, layout: options.layout ?? 'adaptive' }).pptx;
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
// A draft that cannot be rendered has errors of its own, which validation reports.
|
|
60
|
+
if (error instanceof DeckValidationError)
|
|
61
|
+
return [];
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
const pictures = await preview.renderSlides(signal ? { pptx, signal } : { pptx });
|
|
65
|
+
const unreadable = pictures.find((picture) => !BITMAP.test(picture.mimeType));
|
|
66
|
+
if (unreadable)
|
|
67
|
+
throw new Error(`visionReview needs bitmap pictures such as PNG, and the preview provider gave ${unreadable.mimeType}`);
|
|
68
|
+
const bySlide = new Map(pictures.map((picture) => [picture.slide, picture]));
|
|
69
|
+
const issues = [];
|
|
70
|
+
const numbers = deck.slides.map((_, index) => index + 1).filter((number) => bySlide.has(number));
|
|
71
|
+
for (let start = 0; start < numbers.length; start += perRequest) {
|
|
72
|
+
const batch = numbers.slice(start, start + perRequest);
|
|
73
|
+
const slotsOf = new Map();
|
|
74
|
+
const listing = batch.map((number) => {
|
|
75
|
+
const slide = deck.slides[number - 1];
|
|
76
|
+
const pattern = template.manifest.patterns.find((entry) => entry.id === slide.pattern);
|
|
77
|
+
const names = [];
|
|
78
|
+
const texts = [];
|
|
79
|
+
for (const slot of pattern ? effectiveSlots(pattern, slide.items) : []) {
|
|
80
|
+
const value = slide.slots?.[slot.name];
|
|
81
|
+
if (slot.kind !== 'text' || value === undefined || value === null)
|
|
82
|
+
continue;
|
|
83
|
+
names.push(slot.name);
|
|
84
|
+
texts.push(`- ${slot.name}: ${JSON.stringify(short(Array.isArray(value) ? value.join(' / ') : String(value)))}`);
|
|
85
|
+
}
|
|
86
|
+
slotsOf.set(number, names);
|
|
87
|
+
return `s${number} (${slide.pattern}):\n${texts.join('\n') || '- no text'}`;
|
|
88
|
+
});
|
|
89
|
+
const schema = {
|
|
90
|
+
type: 'object',
|
|
91
|
+
properties: {
|
|
92
|
+
problems: {
|
|
93
|
+
type: 'array',
|
|
94
|
+
items: {
|
|
95
|
+
type: 'object',
|
|
96
|
+
properties: {
|
|
97
|
+
slide: { type: 'integer', enum: batch, description: 'Number of the slide, as in its "s" label' },
|
|
98
|
+
slot: { type: 'string', description: 'Name of the slot the problem is in, or an empty string when it cannot be told' },
|
|
99
|
+
problem: { type: 'string', description: 'One sentence of at most 25 words: what is wrong, and how the text should change' },
|
|
100
|
+
},
|
|
101
|
+
required: ['slide', 'slot', 'problem'],
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
required: ['problems'],
|
|
106
|
+
};
|
|
107
|
+
const request = {
|
|
108
|
+
system: SYSTEM,
|
|
109
|
+
prompt: [
|
|
110
|
+
`The pictures show slides ${batch.map((number) => `s${number}`).join(', ')} of a deck, in that order, one picture for each.`,
|
|
111
|
+
`The text of each slide's slots:\n${listing.join('\n\n')}`,
|
|
112
|
+
INSTRUCTIONS,
|
|
113
|
+
].join('\n\n'),
|
|
114
|
+
schema,
|
|
115
|
+
images: batch.map((number) => {
|
|
116
|
+
const picture = bySlide.get(number);
|
|
117
|
+
return { mimeType: picture.mimeType, data: picture.data };
|
|
118
|
+
}),
|
|
119
|
+
// A sentence for each problem, and rarely more than a few problems on a slide.
|
|
120
|
+
maxOutputTokens: 300 + 200 * batch.length,
|
|
121
|
+
};
|
|
122
|
+
if (signal)
|
|
123
|
+
request.signal = signal;
|
|
124
|
+
const answer = (await llm.generateJson(request));
|
|
125
|
+
for (const item of Array.isArray(answer?.problems) ? answer.problems : []) {
|
|
126
|
+
const raw = item;
|
|
127
|
+
const slide = Number(raw?.slide);
|
|
128
|
+
const problem = String(raw?.problem ?? '').replace(/\s+/g, ' ').trim();
|
|
129
|
+
if (!batch.includes(slide) || problem === '')
|
|
130
|
+
continue;
|
|
131
|
+
const issue = { severity: 'warning', slide, message: `seen in the picture of the slide: ${problem}` };
|
|
132
|
+
const slot = String(raw?.slot ?? '').trim();
|
|
133
|
+
if (slotsOf.get(slide)?.includes(slot))
|
|
134
|
+
issue.slot = slot;
|
|
135
|
+
issues.push(issue);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return issues;
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/plan/review.ts"],"names":[],"mappings":"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"}
|
package/dist/plan/write.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { Issue, LayoutMode } from '../deck/validate.ts';
|
|
|
2
2
|
import type { DeckSpec, SlideSpec, SlotValue } from '../deck/spec.ts';
|
|
3
3
|
import type { JsonSchema } from '../llm/provider.ts';
|
|
4
4
|
import type { TemplateManifest } from '../template/manifest.ts';
|
|
5
|
+
import type { TextMeasurer } from '../text/measure.ts';
|
|
5
6
|
import type { CatalogContext, UsablePattern, WriteItem } from './catalog.ts';
|
|
6
7
|
export declare function systemPrompt(language: string, source: 'brief' | 'deck'): string;
|
|
7
8
|
export declare function cleanText(value: unknown): string;
|
|
@@ -16,7 +17,7 @@ export interface WriteJob extends WriteItem {
|
|
|
16
17
|
carried?: Record<string, SlotValue>;
|
|
17
18
|
}
|
|
18
19
|
export interface WriteArgs {
|
|
19
|
-
ask: (prompt: string, schema: JsonSchema) => Promise<unknown>;
|
|
20
|
+
ask: (prompt: string, schema: JsonSchema, room?: number) => Promise<unknown>;
|
|
20
21
|
/** The writing prompt. Repair rounds append the previous answer and its problems. */
|
|
21
22
|
request: string;
|
|
22
23
|
jobs: WriteJob[];
|
|
@@ -24,6 +25,10 @@ export interface WriteArgs {
|
|
|
24
25
|
/** Builds the whole deck from the freshly written slides, keyed by slide number. */
|
|
25
26
|
assemble: (written: Map<number, SlideSpec>) => DeckSpec;
|
|
26
27
|
manifest: TemplateManifest;
|
|
28
|
+
/** Measures text with the template's fonts, so drafts are checked and repaired by the lines they take. */
|
|
29
|
+
measure?: TextMeasurer | undefined;
|
|
30
|
+
/** A second look at each draft that renders: what it finds goes back to the model with the limits the draft broke. */
|
|
31
|
+
review?: ((deck: DeckSpec) => Issue[] | Promise<Issue[]>) | undefined;
|
|
27
32
|
layout: LayoutMode;
|
|
28
33
|
maxRepairs: number;
|
|
29
34
|
onRepair?: (attempt: number, issues: number) => void;
|
|
@@ -33,6 +38,13 @@ export interface WriteArgs {
|
|
|
33
38
|
* written slides go back to the model, up to `maxRepairs` times. Returns the last draft with
|
|
34
39
|
* every issue it still has; the caller decides what is fatal.
|
|
35
40
|
*/
|
|
41
|
+
/**
|
|
42
|
+
* How many tokens the content of some slides may take: every slot at its budget, with room to
|
|
43
|
+
* spare. It is a ceiling for the model's answer, so that an answer that runs away is cut short.
|
|
44
|
+
*/
|
|
45
|
+
export declare function contentRoom(jobs: Array<{
|
|
46
|
+
pattern: UsablePattern;
|
|
47
|
+
}>, context: CatalogContext): number;
|
|
36
48
|
export declare function writeSlides(args: WriteArgs): Promise<{
|
|
37
49
|
deck: DeckSpec;
|
|
38
50
|
issues: Issue[];
|
package/dist/plan/write.js
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
// a set of slides, turning its answer into slide specs, and sending drafts back for repair.
|
|
3
3
|
import { validateDeck } from '../deck/validate.js';
|
|
4
4
|
import { isImageRef } from '../deck/spec.js';
|
|
5
|
+
import { textBudget } from '../template/manifest.js';
|
|
5
6
|
import { readImageInfo } from '../util/image.js';
|
|
6
|
-
import { contentSchema } from './catalog.js';
|
|
7
|
+
import { budgetScale, contentSchema } from './catalog.js';
|
|
7
8
|
export function systemPrompt(language, source) {
|
|
8
9
|
return [
|
|
9
10
|
"You write presentation decks for a fixed slide template. You do not design layouts: you choose from the template's slide patterns and write the content for their slots.",
|
|
@@ -139,11 +140,35 @@ function knownAssets(deck, context) {
|
|
|
139
140
|
* written slides go back to the model, up to `maxRepairs` times. Returns the last draft with
|
|
140
141
|
* every issue it still has; the caller decides what is fatal.
|
|
141
142
|
*/
|
|
143
|
+
/**
|
|
144
|
+
* How many tokens the content of some slides may take: every slot at its budget, with room to
|
|
145
|
+
* spare. It is a ceiling for the model's answer, so that an answer that runs away is cut short.
|
|
146
|
+
*/
|
|
147
|
+
export function contentRoom(jobs, context) {
|
|
148
|
+
let characters = 0;
|
|
149
|
+
let slots = 0;
|
|
150
|
+
for (const { pattern } of jobs) {
|
|
151
|
+
for (const planned of pattern.slots) {
|
|
152
|
+
slots++;
|
|
153
|
+
const { slot } = planned;
|
|
154
|
+
if (slot.kind === 'text')
|
|
155
|
+
characters += textBudget(slot, budgetScale(context)).maxChars ?? 400;
|
|
156
|
+
else if (slot.kind === 'table')
|
|
157
|
+
characters += (slot.maxColumns ?? 4) * ((slot.maxRows ?? 4) + 1) * (slot.maxCellChars ?? 30);
|
|
158
|
+
else if (slot.kind === 'chart')
|
|
159
|
+
characters += 400;
|
|
160
|
+
else
|
|
161
|
+
characters += planned.mode === 'photo' ? 500 : 60; // a photo is described in a sentence or two
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// A token is rarely shorter than a character, even in scripts that tokenise badly; names and punctuation come on top.
|
|
165
|
+
return Math.ceil((characters + slots * 40) * 1.5) + 500;
|
|
166
|
+
}
|
|
142
167
|
export async function writeSlides(args) {
|
|
143
168
|
const { jobs, context } = args;
|
|
144
169
|
const schema = contentSchema(jobs, context);
|
|
145
170
|
const numbers = new Set(jobs.map((job) => job.number));
|
|
146
|
-
const build = (answer) => {
|
|
171
|
+
const build = async (answer) => {
|
|
147
172
|
const content = (typeof answer === 'object' && answer !== null ? answer : {});
|
|
148
173
|
const written = new Map();
|
|
149
174
|
for (const job of jobs) {
|
|
@@ -154,12 +179,20 @@ export async function writeSlides(args) {
|
|
|
154
179
|
written.set(job.number, next);
|
|
155
180
|
}
|
|
156
181
|
const deck = args.assemble(written);
|
|
157
|
-
|
|
182
|
+
const options = { layout: args.layout, assets: knownAssets(deck, context) };
|
|
183
|
+
if (args.measure)
|
|
184
|
+
options.measure = args.measure;
|
|
185
|
+
const issues = validateDeck(args.manifest, deck, options);
|
|
186
|
+
// A draft with errors cannot be rendered, so there is nothing yet for a review to look at.
|
|
187
|
+
if (args.review && !issues.some((issue) => issue.severity === 'error'))
|
|
188
|
+
issues.push(...(await args.review(deck)));
|
|
189
|
+
return { deck, issues };
|
|
158
190
|
};
|
|
159
191
|
// Only slides that were just written can be fixed by asking again.
|
|
160
192
|
const repairable = (issues) => issues.filter((issue) => issue.slide !== undefined && numbers.has(issue.slide));
|
|
161
|
-
|
|
162
|
-
let
|
|
193
|
+
const room = contentRoom(jobs, context);
|
|
194
|
+
let answer = await args.ask(args.request, schema, room);
|
|
195
|
+
let draft = await build(answer);
|
|
163
196
|
for (let attempt = 1; attempt <= args.maxRepairs; attempt++) {
|
|
164
197
|
const problems = repairable(draft.issues);
|
|
165
198
|
if (problems.length === 0)
|
|
@@ -171,8 +204,8 @@ export async function writeSlides(args) {
|
|
|
171
204
|
`It has these problems:\n${problems.map((issue) => `- s${issue.slide}${issue.slot ? `.${issue.slot}` : ''}: ${issue.message}`).join('\n')}`,
|
|
172
205
|
'Return the full content again with these problems fixed. Change nothing else.',
|
|
173
206
|
].join('\n\n');
|
|
174
|
-
answer = await args.ask(repair, schema);
|
|
175
|
-
draft = build(answer);
|
|
207
|
+
answer = await args.ask(repair, schema, room);
|
|
208
|
+
draft = await build(answer);
|
|
176
209
|
}
|
|
177
210
|
return draft;
|
|
178
211
|
}
|
package/dist/plan/write.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/plan/write.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/plan/write.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { PreviewProvider } from './provider.ts';
|
|
2
|
+
/** The part of `@pagus-kit/core` this adapter uses: `import * as core from '@pagus-kit/core'`. */
|
|
3
|
+
export interface PagusCore {
|
|
4
|
+
parse(data: ArrayBuffer): Promise<{
|
|
5
|
+
slides: readonly unknown[];
|
|
6
|
+
slideSize: unknown;
|
|
7
|
+
}>;
|
|
8
|
+
}
|
|
9
|
+
/** The part of `@pagus-kit/renderer` this adapter uses: `import * as renderer from '@pagus-kit/renderer'`. */
|
|
10
|
+
export interface PagusRenderer {
|
|
11
|
+
renderSlide(slide: never, slideSize: never, options?: never): {
|
|
12
|
+
svg: string;
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export interface PagusOptions {
|
|
18
|
+
/** Scale of the drawing: 1 gives 96 pixels to the inch, so a 13.33 inch slide is 1280 wide. Defaults to 1. */
|
|
19
|
+
scale?: number;
|
|
20
|
+
/** A typeface to fall back on for each of the template's, for a viewer that lacks it: `{ Calibri: 'Carlito' }`. */
|
|
21
|
+
fontSubstitutes?: Record<string, string>;
|
|
22
|
+
/** `@font-face` or `@import` rules to embed, so the picture loads its own fonts. */
|
|
23
|
+
fontCss?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A {@link PreviewProvider} that draws slides with Pagus: one SVG for each slide, with the text
|
|
27
|
+
* as real text, so a browser draws it with its own fonts and line breaking. The pictures are for
|
|
28
|
+
* showing in a web page. They are close to PowerPoint and not identical: see docs/preview.md.
|
|
29
|
+
*/
|
|
30
|
+
export declare function pagusPreviews(core: PagusCore, renderer: PagusRenderer, options?: PagusOptions): PreviewProvider;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// Slide pictures from the Pagus library (`@pagus-kit/core` and `@pagus-kit/renderer`). slotdeck
|
|
2
|
+
// does not depend on it: the developer installs it and passes the two modules in.
|
|
3
|
+
import { detectDirection } from '../render/text.js';
|
|
4
|
+
const encoder = new TextEncoder();
|
|
5
|
+
/**
|
|
6
|
+
* Pagus writes a paragraph's text as HTML and leaves its direction to the browser, which takes
|
|
7
|
+
* a paragraph to run left to right unless told otherwise. A Hebrew or Arabic sentence then gets
|
|
8
|
+
* its full stop on the wrong side, and a line that mixes Hebrew with an address or a number is
|
|
9
|
+
* put in the wrong order. A paragraph that starts with a right-to-left letter is therefore
|
|
10
|
+
* marked as running right to left, which is how slotdeck's renderer marks it in the pptx.
|
|
11
|
+
*/
|
|
12
|
+
function markDirection(svg) {
|
|
13
|
+
return svg.replace(/<p ([^>]*)>([\s\S]*?)<\/p>/g, (whole, attributes, inner) => {
|
|
14
|
+
if (/(^|\s)dir=/.test(attributes))
|
|
15
|
+
return whole;
|
|
16
|
+
return detectDirection(inner.replace(/<[^>]+>/g, '')) === 'rtl' ? `<p dir="rtl" ${attributes}>${inner}</p>` : whole;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A {@link PreviewProvider} that draws slides with Pagus: one SVG for each slide, with the text
|
|
21
|
+
* as real text, so a browser draws it with its own fonts and line breaking. The pictures are for
|
|
22
|
+
* showing in a web page. They are close to PowerPoint and not identical: see docs/preview.md.
|
|
23
|
+
*/
|
|
24
|
+
export function pagusPreviews(core, renderer, options = {}) {
|
|
25
|
+
const render = renderer.renderSlide;
|
|
26
|
+
return {
|
|
27
|
+
async renderSlides({ pptx, slides, signal }) {
|
|
28
|
+
signal?.throwIfAborted();
|
|
29
|
+
// The parser takes an ArrayBuffer of exactly the file, which a view into a larger buffer is not.
|
|
30
|
+
const buffer = pptx.buffer.slice(pptx.byteOffset, pptx.byteOffset + pptx.byteLength);
|
|
31
|
+
const presentation = await core.parse(buffer);
|
|
32
|
+
signal?.throwIfAborted();
|
|
33
|
+
const wanted = slides ? new Set(slides) : undefined;
|
|
34
|
+
const pictures = [];
|
|
35
|
+
presentation.slides.forEach((slide, index) => {
|
|
36
|
+
if (wanted && !wanted.has(index + 1))
|
|
37
|
+
return;
|
|
38
|
+
const drawn = render(slide, presentation.slideSize, options);
|
|
39
|
+
pictures.push({ slide: index + 1, mimeType: 'image/svg+xml', data: encoder.encode(markDirection(drawn.svg)), width: drawn.width, height: drawn.height });
|
|
40
|
+
});
|
|
41
|
+
return pictures;
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=pagus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagus.js","sourceRoot":"","sources":["../../src/preview/pagus.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,kFAAkF;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAsBpD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAElC;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,GAAW;IAChC,OAAO,GAAG,CAAC,OAAO,CAAC,6BAA6B,EAAE,CAAC,KAAK,EAAE,UAAkB,EAAE,KAAa,EAAE,EAAE;QAC7F,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,gBAAgB,UAAU,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACtH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAe,EAAE,QAAuB,EAAE,OAAO,GAAiB,EAAE;IAChG,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAwH,CAAC;IACjJ,OAAO;QACL,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;YACzC,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,iGAAiG;YACjG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAgB,CAAC;YACpG,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpD,MAAM,QAAQ,GAAmB,EAAE,CAAC;YACpC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC3C,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;oBAAE,OAAO;gBAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3J,CAAC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { DeckSpec } from '../deck/spec.ts';
|
|
2
|
+
import type { LayoutMode } from '../deck/validate.ts';
|
|
3
|
+
import type { Template } from '../render/render.ts';
|
|
4
|
+
import type { SampleOptions } from '../template/sample.ts';
|
|
5
|
+
import type { PreviewProvider, SlidePreview } from './provider.ts';
|
|
6
|
+
export interface PreviewDeckOptions {
|
|
7
|
+
/** Picture bytes by asset id, as for `renderDeck`. */
|
|
8
|
+
assets?: Record<string, Uint8Array>;
|
|
9
|
+
layout?: LayoutMode;
|
|
10
|
+
signal?: AbortSignal;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Renders a deck and draws its slides: `renderDeck`, then the provider. For showing a deck
|
|
14
|
+
* before or instead of offering the file.
|
|
15
|
+
*/
|
|
16
|
+
export declare function previewDeck(template: Template, deck: DeckSpec, preview: PreviewProvider, options?: PreviewDeckOptions): Promise<{
|
|
17
|
+
pptx: Uint8Array;
|
|
18
|
+
previews: SlidePreview[];
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* A picture of every pattern of a template, by pattern id: the thumbnails to show a plan with.
|
|
22
|
+
* Each is the pattern's slide of the template's sample deck, so a pattern derived from another
|
|
23
|
+
* pattern's slide is shown as it will look, not as the slide it was made from.
|
|
24
|
+
*/
|
|
25
|
+
export declare function patternPreviews(template: Template, preview: PreviewProvider, options?: SampleOptions & {
|
|
26
|
+
signal?: AbortSignal;
|
|
27
|
+
}): Promise<Record<string, SlidePreview>>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { renderDeck } from '../render/render.js';
|
|
2
|
+
import { sampleDeck } from '../template/sample.js';
|
|
3
|
+
/**
|
|
4
|
+
* Renders a deck and draws its slides: `renderDeck`, then the provider. For showing a deck
|
|
5
|
+
* before or instead of offering the file.
|
|
6
|
+
*/
|
|
7
|
+
export async function previewDeck(template, deck, preview, options = {}) {
|
|
8
|
+
const render = {};
|
|
9
|
+
if (options.assets)
|
|
10
|
+
render.assets = options.assets;
|
|
11
|
+
if (options.layout)
|
|
12
|
+
render.layout = options.layout;
|
|
13
|
+
const { pptx } = renderDeck(template, deck, render);
|
|
14
|
+
const previews = await preview.renderSlides(options.signal ? { pptx, signal: options.signal } : { pptx });
|
|
15
|
+
return { pptx, previews };
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A picture of every pattern of a template, by pattern id: the thumbnails to show a plan with.
|
|
19
|
+
* Each is the pattern's slide of the template's sample deck, so a pattern derived from another
|
|
20
|
+
* pattern's slide is shown as it will look, not as the slide it was made from.
|
|
21
|
+
*/
|
|
22
|
+
export async function patternPreviews(template, preview, options = {}) {
|
|
23
|
+
const { signal, ...sample } = options;
|
|
24
|
+
const { deck, assets } = sampleDeck(template, sample);
|
|
25
|
+
const { previews } = await previewDeck(template, deck, preview, signal ? { assets, layout: 'adaptive', signal } : { assets, layout: 'adaptive' });
|
|
26
|
+
const bySlide = new Map(previews.map((picture) => [picture.slide, picture]));
|
|
27
|
+
const pictures = {};
|
|
28
|
+
template.manifest.patterns.forEach((pattern, index) => {
|
|
29
|
+
const picture = bySlide.get(index + 1);
|
|
30
|
+
if (picture)
|
|
31
|
+
pictures[pattern.id] = picture;
|
|
32
|
+
});
|
|
33
|
+
return pictures;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/preview/patterns.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAWnD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAkB,EAAE,IAAc,EAAE,OAAwB,EAAE,OAAO,GAAuB,EAAE;IAC9H,MAAM,MAAM,GAAiE,EAAE,CAAC;IAChF,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACnD,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1G,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAkB,EAAE,OAAwB,EAAE,OAAO,GAA6C,EAAE;IACxI,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IACtC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAClJ,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAiC,EAAE,CAAC;IAClD,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,OAAO;YAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** A picture of one slide of a pptx. */
|
|
2
|
+
export interface SlidePreview {
|
|
3
|
+
/** 1-based slide number. */
|
|
4
|
+
slide: number;
|
|
5
|
+
/** `image/svg+xml` for a drawing a browser shows, `image/png` (or another bitmap type) for pixels. */
|
|
6
|
+
mimeType: string;
|
|
7
|
+
/** The picture: SVG as UTF-8 text, or the bitmap's bytes. */
|
|
8
|
+
data: Uint8Array;
|
|
9
|
+
/** Size in pixels, when the renderer states it. */
|
|
10
|
+
width?: number;
|
|
11
|
+
height?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface PreviewRequest {
|
|
14
|
+
/** The presentation to draw, e.g. the result of `renderDeck`. */
|
|
15
|
+
pptx: Uint8Array;
|
|
16
|
+
/** 1-based numbers of the slides wanted. All of them when left out. */
|
|
17
|
+
slides?: number[];
|
|
18
|
+
signal?: AbortSignal;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The one thing slotdeck needs from a slide renderer: pictures of the slides of a pptx.
|
|
22
|
+
* Implement this over any renderer: a library, a service that runs PowerPoint or LibreOffice,
|
|
23
|
+
* a headless browser. {@link pagusPreviews} does it for the Pagus library.
|
|
24
|
+
*/
|
|
25
|
+
export interface PreviewProvider {
|
|
26
|
+
/** Resolves with one picture for each slide asked for, in slide order. */
|
|
27
|
+
renderSlides(request: PreviewRequest): Promise<SlidePreview[]>;
|
|
28
|
+
}
|
|
29
|
+
/** The file extension for a preview's type, for naming it in a store or on disk. */
|
|
30
|
+
export declare function previewExtension(preview: Pick<SlidePreview, 'mimeType'>): string;
|