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/node.js
CHANGED
|
@@ -1,6 +1,35 @@
|
|
|
1
1
|
// Node-only helpers. The main entry point stays free of Node APIs so it can run in a browser.
|
|
2
|
+
import { readdirSync, readFileSync } from 'node:fs';
|
|
2
3
|
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
3
4
|
import { dirname, join, resolve, sep } from 'node:path';
|
|
5
|
+
/**
|
|
6
|
+
* Finds the font files of the given typefaces in a folder, such as the system's font folder, by
|
|
7
|
+
* the family name each file states. The result goes to `fontkitMetrics`. A typeface that has no
|
|
8
|
+
* file in the folder is left out; every weight and slant found of the others is included.
|
|
9
|
+
*/
|
|
10
|
+
export function fontFiles(fontkit, directory, typefaces) {
|
|
11
|
+
const wanted = new Map([...typefaces].map((name) => [name.toLowerCase(), name]));
|
|
12
|
+
const found = {};
|
|
13
|
+
for (const name of readdirSync(directory).sort()) {
|
|
14
|
+
if (!/\.(ttf|otf|ttc|woff2?)$/i.test(name))
|
|
15
|
+
continue;
|
|
16
|
+
const bytes = new Uint8Array(readFileSync(join(directory, name)));
|
|
17
|
+
let families;
|
|
18
|
+
try {
|
|
19
|
+
const opened = fontkit.create(bytes);
|
|
20
|
+
families = (opened.fonts ?? [opened]).map((font) => (font.familyName ?? '').toLowerCase());
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
continue; // not a font this library reads
|
|
24
|
+
}
|
|
25
|
+
for (const family of new Set(families)) {
|
|
26
|
+
const typeface = wanted.get(family);
|
|
27
|
+
if (typeface)
|
|
28
|
+
(found[typeface] ??= []).push(bytes);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return found;
|
|
32
|
+
}
|
|
4
33
|
/** A {@link BlobStore} backed by a folder, e.g. a mounted volume. Keys become file paths under it. */
|
|
5
34
|
export function directoryStore(directory) {
|
|
6
35
|
const root = resolve(directory);
|
package/dist/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
|
package/dist/plan/catalog.d.ts
CHANGED
|
@@ -26,8 +26,10 @@ export interface CatalogContext {
|
|
|
26
26
|
imageDensity: ImageDensity;
|
|
27
27
|
/** Whether patterns built around numbers may be offered. */
|
|
28
28
|
figures: boolean;
|
|
29
|
-
/** Size of body text as a factor on the template's; larger text gets smaller budgets. */
|
|
29
|
+
/** Size of the deck's body text as a factor on the template's; larger text gets smaller budgets. */
|
|
30
30
|
textScale: number;
|
|
31
|
+
/** The template's own factor on body text, applied on top. Defaults to 1. */
|
|
32
|
+
templateScale?: number;
|
|
31
33
|
/** Restrict planning to these pattern ids. */
|
|
32
34
|
allow?: string[];
|
|
33
35
|
}
|
|
@@ -76,6 +78,14 @@ export declare function planPattern(def: PatternDef, context: CatalogContext, sk
|
|
|
76
78
|
} | {
|
|
77
79
|
reason: string;
|
|
78
80
|
};
|
|
81
|
+
/** The factor that budgets are worked out with: the deck's text size on top of the template's. */
|
|
82
|
+
export declare const budgetScale: (context: CatalogContext) => number;
|
|
83
|
+
/**
|
|
84
|
+
* Whether a slide made from the pattern is running text and nothing else: a title with paragraphs
|
|
85
|
+
* or a list. Cards, figures, tables, charts, icons and pictures all make a pattern something more.
|
|
86
|
+
* A picture that the pattern always drops does not count.
|
|
87
|
+
*/
|
|
88
|
+
export declare function isPlainText(def: PatternDef): boolean;
|
|
79
89
|
/** Works out which patterns can be filled with what the caller supplied, and which of their slots the model writes. */
|
|
80
90
|
export declare function buildCatalog(manifest: TemplateManifest, context: CatalogContext): Catalog;
|
|
81
91
|
/** The pattern list as the outline prompt shows it. */
|
package/dist/plan/catalog.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { effectiveSlots, itemRange, textBudget } from '../template/manifest.js';
|
|
1
|
+
import { effectiveSlots, itemRange, tableAtScale, textBudget } from '../template/manifest.js';
|
|
2
2
|
/**
|
|
3
3
|
* Works out which slots of a pattern the model writes, or why the pattern cannot be used.
|
|
4
4
|
* Slots named in `skip` are already taken care of (carried over from an existing slide)
|
|
@@ -68,6 +68,16 @@ export function planPattern(def, context, skip = new Set(), items) {
|
|
|
68
68
|
pattern.items = items;
|
|
69
69
|
return { pattern };
|
|
70
70
|
}
|
|
71
|
+
/** The factor that budgets are worked out with: the deck's text size on top of the template's. */
|
|
72
|
+
export const budgetScale = (context) => context.textScale * (context.templateScale ?? 1);
|
|
73
|
+
/**
|
|
74
|
+
* Whether a slide made from the pattern is running text and nothing else: a title with paragraphs
|
|
75
|
+
* or a list. Cards, figures, tables, charts, icons and pictures all make a pattern something more.
|
|
76
|
+
* A picture that the pattern always drops does not count.
|
|
77
|
+
*/
|
|
78
|
+
export function isPlainText(def) {
|
|
79
|
+
return !def.repeat && !def.figures && def.slots.every((slot) => slot.kind === 'text' || slot.empty === 'drop');
|
|
80
|
+
}
|
|
71
81
|
/** Works out which patterns can be filled with what the caller supplied, and which of their slots the model writes. */
|
|
72
82
|
export function buildCatalog(manifest, context) {
|
|
73
83
|
const patterns = [];
|
|
@@ -83,7 +93,8 @@ export function buildCatalog(manifest, context) {
|
|
|
83
93
|
}
|
|
84
94
|
return { patterns, excluded };
|
|
85
95
|
}
|
|
86
|
-
function limits(
|
|
96
|
+
function limits(given, scale = 1) {
|
|
97
|
+
const slot = given.kind === 'table' ? tableAtScale(given, scale) : given;
|
|
87
98
|
if (slot.kind === 'table') {
|
|
88
99
|
const parts = [];
|
|
89
100
|
if (slot.maxColumns !== undefined)
|
|
@@ -132,25 +143,29 @@ export function describeCatalog(catalog, textScale = 1) {
|
|
|
132
143
|
const kind = planned.mode === 'text' || planned.mode === 'paragraphs'
|
|
133
144
|
? limits(slot, textScale) || 'text'
|
|
134
145
|
: planned.mode === 'table' || planned.mode === 'chart'
|
|
135
|
-
? [planned.mode, limits(slot)].filter(Boolean).join(': ')
|
|
146
|
+
? [planned.mode, limits(slot, textScale)].filter(Boolean).join(': ')
|
|
136
147
|
: planned.mode;
|
|
137
148
|
return `${itemSlot.get(slot.name)?.label ?? slot.name}${planned.required ? '' : '?'} (${kind})`;
|
|
138
149
|
})
|
|
139
150
|
.join('; ');
|
|
140
|
-
|
|
141
|
-
|
|
151
|
+
// A row that widens its items gives each of fewer items more room; the limits shown are those of the drawn number.
|
|
152
|
+
const roomier = repeat?.widen && repeat.widen > 1 && range && range.min < (repeat.columns ?? range.drawn) ? ` With fewer on a line than ${repeat.columns ?? range.drawn}, each ${repeat.item} is wider and holds more text.` : '';
|
|
153
|
+
const count = repeat && range && range.max > range.min ? `\n items: ${range.min} to ${range.max} ${repeat.item}s, numbered N = 1, 2, ...${roomier}` : '';
|
|
154
|
+
// Said in so many words, so that a wish for text-only slides can be met without guessing from the slots.
|
|
155
|
+
const plain = isPlainText(pattern.def) ? ' Plain text.' : '';
|
|
156
|
+
return `- ${pattern.def.id}: ${pattern.def.description}${plain}\n slots: ${slots}${count}`;
|
|
142
157
|
})
|
|
143
158
|
.join('\n');
|
|
144
159
|
}
|
|
145
160
|
function slotSchema(planned, context) {
|
|
146
161
|
const { slot } = planned;
|
|
147
|
-
const note = [slot.description, limits(slot, context
|
|
162
|
+
const note = [slot.description, limits(slot, budgetScale(context))].filter(Boolean).join('. ');
|
|
148
163
|
switch (planned.mode) {
|
|
149
164
|
case 'text':
|
|
150
165
|
return { type: 'string', description: note || 'Text' };
|
|
151
166
|
case 'paragraphs': {
|
|
152
167
|
const schema = { type: 'array', items: { type: 'string' }, minItems: 1, description: note || 'One string per paragraph' };
|
|
153
|
-
const most = textBudget(planned.slot, context
|
|
168
|
+
const most = textBudget(planned.slot, budgetScale(context)).maxParagraphs;
|
|
154
169
|
if (most !== undefined)
|
|
155
170
|
schema.maxItems = most;
|
|
156
171
|
return schema;
|
|
@@ -262,7 +277,7 @@ export function outlineSchema(catalog, count) {
|
|
|
262
277
|
type: 'object',
|
|
263
278
|
properties: {
|
|
264
279
|
pattern: { type: 'string', enum: catalog.patterns.map((pattern) => pattern.def.id) },
|
|
265
|
-
purpose: { type: 'string', description: 'The one point this slide makes
|
|
280
|
+
purpose: { type: 'string', description: 'The one point this slide makes: a single sentence of at most 25 words' },
|
|
266
281
|
...itemsProperty(catalog),
|
|
267
282
|
},
|
|
268
283
|
required: ['pattern', 'purpose'],
|
package/dist/plan/catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/plan/catalog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/plan/catalog.ts"],"names":[],"mappings":"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"}
|
package/dist/plan/edit.js
CHANGED
|
@@ -2,8 +2,9 @@ import { DeckValidationError, validateDeck } from '../deck/validate.js';
|
|
|
2
2
|
import { unstatedChartValues } from '../deck/numbers.js';
|
|
3
3
|
import { isChartValue, isImageRef } from '../deck/spec.js';
|
|
4
4
|
import { TEXT_SIZES, effectiveSlots, itemCount, itemRange } from '../template/manifest.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { measurerFor } from '../text/measure.js';
|
|
6
|
+
import { budgetScale, buildCatalog, describeCatalog, planPattern, readItems } from './catalog.js';
|
|
7
|
+
import { PlanError, SLIDE_KIND_RULE, asker, directionOf, hasFigures, planRoom, reviewWith } from './plan.js';
|
|
7
8
|
import { cleanText, suppliesText, systemPrompt, writeSlides } from './write.js';
|
|
8
9
|
function describeValue(value) {
|
|
9
10
|
if (value === undefined || value === null)
|
|
@@ -99,6 +100,7 @@ function planSchemaBase(patternIds, slideCount) {
|
|
|
99
100
|
*/
|
|
100
101
|
export async function planEdit(template, deck, instruction, options) {
|
|
101
102
|
const { manifest } = template;
|
|
103
|
+
const measure = measurerFor(template);
|
|
102
104
|
const layout = options.layout ?? 'strict';
|
|
103
105
|
const fields = options.fields ?? deck.fields ?? {};
|
|
104
106
|
const currentLanguage = deck.language ?? manifest.language ?? 'en';
|
|
@@ -114,6 +116,7 @@ export async function planEdit(template, deck, instruction, options) {
|
|
|
114
116
|
imageDensity: options.imageDensity ?? 'medium',
|
|
115
117
|
figures,
|
|
116
118
|
textScale: deck.textScale ?? 1,
|
|
119
|
+
templateScale: manifest.textScale ?? 1,
|
|
117
120
|
};
|
|
118
121
|
const currentSize = (Object.entries(TEXT_SIZES).find(([, factor]) => factor === context.textScale)?.[0] ?? 'normal');
|
|
119
122
|
if (options.patterns)
|
|
@@ -140,11 +143,12 @@ export async function planEdit(template, deck, instruction, options) {
|
|
|
140
143
|
'Return the slides of the deck after the change, in their new order.',
|
|
141
144
|
'- from: the number of the existing slide a slide is based on, or 0 for a new slide. Leave a slide out to delete it.',
|
|
142
145
|
'- pattern: keep the pattern of an existing slide unless the request calls for a different layout.',
|
|
146
|
+
` ${SLIDE_KIND_RULE}`,
|
|
143
147
|
'- change: what to write or change on that slide. Leave it empty for every slide the request does not touch.',
|
|
144
148
|
'- images: true only when the pictures or icons of that slide should change.',
|
|
145
149
|
'- items: for a pattern with a row of items, the number the slide has after the change.',
|
|
146
150
|
].join('\n'),
|
|
147
|
-
offer.patterns.length > 0 ? `Patterns for new slides ("?" marks an optional slot):\n${describeCatalog(offer, context
|
|
151
|
+
offer.patterns.length > 0 ? `Patterns for new slides ("?" marks an optional slot):\n${describeCatalog(offer, budgetScale(context))}` : '',
|
|
148
152
|
]
|
|
149
153
|
.filter(Boolean)
|
|
150
154
|
.join('\n\n');
|
|
@@ -199,10 +203,12 @@ export async function planEdit(template, deck, instruction, options) {
|
|
|
199
203
|
};
|
|
200
204
|
const mostItems = Math.max(0, ...patternIds.map((id) => itemRange(definitions.get(id))).map((range) => (range && range.max > range.min ? range.max : 0)));
|
|
201
205
|
const planSchema = editPlanSchema(patternIds, deck.slides.length, fieldNames, mostItems);
|
|
202
|
-
|
|
206
|
+
// The edit plan says a little more for each slide than an outline does, and may add slides.
|
|
207
|
+
const room = planRoom(deck.slides.length + 10) * 1.5;
|
|
208
|
+
let plan = readPlan(await asker(options.llm, systemPrompt(currentLanguage, 'deck'), options.signal, 'low')(planRequest, planSchema, room));
|
|
203
209
|
if (plan.problem) {
|
|
204
210
|
const retry = `${planRequest}\n\nYour previous answer could not be used: ${plan.problem}. Answer again.`;
|
|
205
|
-
plan = readPlan(await asker(options.llm, systemPrompt(currentLanguage, 'deck'), options.signal)(retry, planSchema));
|
|
211
|
+
plan = readPlan(await asker(options.llm, systemPrompt(currentLanguage, 'deck'), options.signal, 'low')(retry, planSchema, room));
|
|
206
212
|
if (plan.problem)
|
|
207
213
|
throw new PlanError(`The model did not produce a usable edit plan: ${plan.problem}`);
|
|
208
214
|
}
|
|
@@ -218,7 +224,7 @@ export async function planEdit(template, deck, instruction, options) {
|
|
|
218
224
|
const textScale = TEXT_SIZES[plan.textSize];
|
|
219
225
|
const resized = textScale !== context.textScale;
|
|
220
226
|
context.textScale = textScale;
|
|
221
|
-
const overflows = (slide) => validateDeck(manifest, { ...deck, textScale, slides: [slide] }, { layout }).some((issue) => /characters|paragraphs/.test(issue.message));
|
|
227
|
+
const overflows = (slide) => validateDeck(manifest, { ...deck, textScale, slides: [slide] }, measure ? { layout, measure } : { layout }).some((issue) => /characters|paragraphs|lines/.test(issue.message));
|
|
222
228
|
// 2. Work out, per slide, whether it is copied or written, and what a written slide carries over.
|
|
223
229
|
const jobs = [];
|
|
224
230
|
const kept = new Map();
|
|
@@ -350,6 +356,8 @@ export async function planEdit(template, deck, instruction, options) {
|
|
|
350
356
|
context,
|
|
351
357
|
assemble,
|
|
352
358
|
manifest,
|
|
359
|
+
measure,
|
|
360
|
+
review: reviewWith(options),
|
|
353
361
|
layout,
|
|
354
362
|
maxRepairs: options.maxRepairs ?? 2,
|
|
355
363
|
onRepair: (attempt, issues) => options.onProgress?.({ stage: 'repair', attempt, issues }),
|
package/dist/plan/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/plan/edit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/plan/edit.ts"],"names":[],"mappings":"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"}
|
package/dist/plan/plan.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { JsonSchema, LlmProvider } from '../llm/provider.ts';
|
|
|
4
4
|
import type { Template } from '../render/render.ts';
|
|
5
5
|
import type { Direction, TextSize } from '../template/manifest.ts';
|
|
6
6
|
import type { AssetDef, IconDef, ImageDensity } from './catalog.ts';
|
|
7
|
+
import type { DeckReview } from './review.ts';
|
|
7
8
|
/** What the person asked for. */
|
|
8
9
|
export interface Brief {
|
|
9
10
|
/** What the deck is about, in the person's own words. */
|
|
@@ -25,6 +26,11 @@ export interface Brief {
|
|
|
25
26
|
fields?: Record<string, string>;
|
|
26
27
|
/** Size of body text. Larger text means less of it fits on a slide. Defaults to `normal`. */
|
|
27
28
|
textSize?: TextSize;
|
|
29
|
+
/**
|
|
30
|
+
* Plan every slide as plain text: a title with paragraphs or a list, and no pictures, icons,
|
|
31
|
+
* cards, figures, tables or charts. Only the template's plain text patterns are offered.
|
|
32
|
+
*/
|
|
33
|
+
textOnly?: boolean;
|
|
28
34
|
}
|
|
29
35
|
export type PlanProgress = {
|
|
30
36
|
stage: 'outline';
|
|
@@ -53,6 +59,13 @@ export interface PlanOptions {
|
|
|
53
59
|
numberPatterns?: 'from-brief' | 'always' | 'never';
|
|
54
60
|
/** How many times the model may be asked to fix a draft that breaks the template's limits. Defaults to 2. */
|
|
55
61
|
maxRepairs?: number;
|
|
62
|
+
/**
|
|
63
|
+
* A second look at every draft: `designReview` for the code-only design checks, `visionReview`
|
|
64
|
+
* for a model that looks at pictures of the slides, or a function of your own. What it finds is
|
|
65
|
+
* sent back to the writing model in the repair rounds, and what remains is returned with the
|
|
66
|
+
* warnings. Nothing reviews a draft unless this is set.
|
|
67
|
+
*/
|
|
68
|
+
review?: DeckReview;
|
|
56
69
|
onProgress?: (event: PlanProgress) => void;
|
|
57
70
|
signal?: AbortSignal;
|
|
58
71
|
}
|
|
@@ -74,8 +87,19 @@ export declare class PlanError extends Error {
|
|
|
74
87
|
export declare function directionOf(language: string): Direction;
|
|
75
88
|
/** Whether a text contains any digit, in any script. */
|
|
76
89
|
export declare function hasFigures(text: string): boolean;
|
|
77
|
-
/**
|
|
78
|
-
|
|
90
|
+
/**
|
|
91
|
+
* Binds a provider to a system prompt and an optional abort signal. `room` is how many tokens
|
|
92
|
+
* the answer may reasonably take: a model sometimes runs away inside a text field, and a limit
|
|
93
|
+
* is what ends that after seconds instead of minutes. `effort` is `low` for calls that choose
|
|
94
|
+
* and arrange rather than write.
|
|
95
|
+
*/
|
|
96
|
+
export declare function asker(llm: LlmProvider, system: string, signal: AbortSignal | undefined, effort?: 'low'): (prompt: string, schema: JsonSchema, room?: number) => Promise<unknown>;
|
|
97
|
+
/** The caller's review, bound to the caller's abort signal. */
|
|
98
|
+
export declare function reviewWith(options: Pick<PlanOptions, 'review' | 'signal'>): ((deck: DeckSpec) => Issue[] | Promise<Issue[]>) | undefined;
|
|
99
|
+
/** Room for a plan: a title, and for each slide a pattern id and a sentence. Generous, since it is a ceiling. */
|
|
100
|
+
export declare const planRoom: (slides: number) => number;
|
|
101
|
+
/** What a wish about the kind of slides means, in the planner's own terms. Shared by every prompt that chooses patterns. */
|
|
102
|
+
export declare const SLIDE_KIND_RULE: string;
|
|
79
103
|
/** A deck before its content is written: the slides in order, each with a pattern and the point it makes. */
|
|
80
104
|
export interface DeckPlan {
|
|
81
105
|
version: 1;
|
package/dist/plan/plan.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { unstatedChartValues } from '../deck/numbers.js';
|
|
2
2
|
import { DeckValidationError } from '../deck/validate.js';
|
|
3
3
|
import { TEXT_SIZES } from '../template/manifest.js';
|
|
4
|
-
import {
|
|
4
|
+
import { measurerFor } from '../text/measure.js';
|
|
5
|
+
import { budgetScale, buildCatalog, describeCatalog, isPlainText, itemsProperty, outlineSchema, planPattern, readItems } from './catalog.js';
|
|
5
6
|
import { cleanText, suppliesText, systemPrompt, writeSlides } from './write.js';
|
|
6
7
|
export class PlanError extends Error {
|
|
7
8
|
constructor(message) {
|
|
@@ -17,10 +18,31 @@ export function directionOf(language) {
|
|
|
17
18
|
export function hasFigures(text) {
|
|
18
19
|
return /\p{Nd}/u.test(text);
|
|
19
20
|
}
|
|
20
|
-
/**
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Binds a provider to a system prompt and an optional abort signal. `room` is how many tokens
|
|
23
|
+
* the answer may reasonably take: a model sometimes runs away inside a text field, and a limit
|
|
24
|
+
* is what ends that after seconds instead of minutes. `effort` is `low` for calls that choose
|
|
25
|
+
* and arrange rather than write.
|
|
26
|
+
*/
|
|
27
|
+
export function asker(llm, system, signal, effort) {
|
|
28
|
+
return (prompt, schema, room) => {
|
|
29
|
+
const request = { system, prompt, schema };
|
|
30
|
+
if (room !== undefined)
|
|
31
|
+
request.maxOutputTokens = Math.ceil(room);
|
|
32
|
+
if (effort)
|
|
33
|
+
request.effort = effort;
|
|
34
|
+
if (signal)
|
|
35
|
+
request.signal = signal;
|
|
36
|
+
return llm.generateJson(request);
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** The caller's review, bound to the caller's abort signal. */
|
|
40
|
+
export function reviewWith(options) {
|
|
41
|
+
const { review, signal } = options;
|
|
42
|
+
return review ? (deck) => review(deck, signal ? { signal } : {}) : undefined;
|
|
23
43
|
}
|
|
44
|
+
/** Room for a plan: a title, and for each slide a pattern id and a sentence. Generous, since it is a ceiling. */
|
|
45
|
+
export const planRoom = (slides) => 400 + 160 * slides;
|
|
24
46
|
const DENSITY_GUIDANCE = {
|
|
25
47
|
none: 'Do not plan any photos.',
|
|
26
48
|
low: 'Use a pattern with a photo on at most a quarter of the slides.',
|
|
@@ -32,6 +54,10 @@ function briefText(brief) {
|
|
|
32
54
|
.filter(Boolean)
|
|
33
55
|
.join('\n\n');
|
|
34
56
|
}
|
|
57
|
+
/** What a wish about the kind of slides means, in the planner's own terms. Shared by every prompt that chooses patterns. */
|
|
58
|
+
export const SLIDE_KIND_RULE = 'A wish about the kind of slides (text only, no tables, only cards) decides which patterns may be used, and comes before variety. ' +
|
|
59
|
+
'"Text only" means the patterns marked "Plain text.": a title with paragraphs or a list, and no cards, figures, tables, charts, icons or pictures. ' +
|
|
60
|
+
'Using one pattern for many slides is right when the wish leaves no other.';
|
|
35
61
|
function outlinePrompt(brief, catalog, count, density, textScale = 1) {
|
|
36
62
|
const size = count.min === count.max ? `exactly ${count.min}` : `${count.min} to ${count.max}`;
|
|
37
63
|
return [
|
|
@@ -42,8 +68,9 @@ function outlinePrompt(brief, catalog, count, density, textScale = 1) {
|
|
|
42
68
|
'- Open with an opening pattern and end with a closing pattern when the list has them.',
|
|
43
69
|
'- For a pattern with a row of items, set "items" to the number the content really has. Do not pad a list to fill a row.',
|
|
44
70
|
'- Choose a pattern only when the content can fill every required slot within its limits.',
|
|
45
|
-
|
|
46
|
-
|
|
71
|
+
...(brief.textOnly
|
|
72
|
+
? ['- The deck is text only, and every pattern in the list is plain text. Using the same pattern for several slides in a row is expected.']
|
|
73
|
+
: [`- ${SLIDE_KIND_RULE}`, '- Otherwise vary the patterns across the deck.', `- ${DENSITY_GUIDANCE[density]}`]),
|
|
47
74
|
].join('\n'),
|
|
48
75
|
].join('\n\n');
|
|
49
76
|
}
|
|
@@ -67,7 +94,7 @@ function planning(template, brief, options) {
|
|
|
67
94
|
const numbers = options.numberPatterns ?? 'from-brief';
|
|
68
95
|
const figures = numbers === 'always' || (numbers === 'from-brief' && hasFigures(`${brief.prompt} ${brief.instructions ?? ''}`));
|
|
69
96
|
const textScale = TEXT_SIZES[brief.textSize ?? 'normal'] ?? 1;
|
|
70
|
-
const context = { layout, fields, icons: options.icons ?? [], assets: options.assets ?? [], imageDensity: density, figures, textScale };
|
|
97
|
+
const context = { layout, fields, icons: options.icons ?? [], assets: options.assets ?? [], imageDensity: density, figures, textScale, templateScale: manifest.textScale ?? 1 };
|
|
71
98
|
if (options.patterns)
|
|
72
99
|
context.allow = options.patterns;
|
|
73
100
|
const catalog = buildCatalog(manifest, context);
|
|
@@ -109,17 +136,25 @@ function readOutline(answer, byId) {
|
|
|
109
136
|
* The result is small and quick to produce, so it is the thing to show a person and let them change.
|
|
110
137
|
*/
|
|
111
138
|
export async function planOutline(template, brief, options) {
|
|
112
|
-
const
|
|
139
|
+
const planned = planning(template, brief, options);
|
|
140
|
+
const { language, density, context } = planned;
|
|
141
|
+
// A text-only deck is offered the plain text patterns and nothing else, so the wish cannot be missed.
|
|
142
|
+
const catalog = brief.textOnly ? { ...planned.catalog, patterns: planned.catalog.patterns.filter((pattern) => isPlainText(pattern.def)) } : planned.catalog;
|
|
143
|
+
if (catalog.patterns.length === 0) {
|
|
144
|
+
throw new PlanError(`Template "${template.manifest.name}" has no plain text pattern, so a text-only deck cannot be planned from it`);
|
|
145
|
+
}
|
|
146
|
+
const byId = new Map(catalog.patterns.map((pattern) => [pattern.def.id, pattern]));
|
|
113
147
|
const count = typeof brief.slideCount === 'number'
|
|
114
148
|
? { min: brief.slideCount, max: brief.slideCount }
|
|
115
149
|
: (brief.slideCount ?? { min: 6, max: 10 });
|
|
116
|
-
|
|
150
|
+
// Choosing a pattern for each slide needs little reasoning, and is much quicker with little.
|
|
151
|
+
const ask = asker(options.llm, systemPrompt(language, 'brief'), options.signal, 'low');
|
|
117
152
|
options.onProgress?.({ stage: 'outline' });
|
|
118
|
-
const request = outlinePrompt(brief, catalog, count, density, context
|
|
119
|
-
let outline = readOutline(await ask(request, outlineSchema(catalog, count)), byId);
|
|
153
|
+
const request = outlinePrompt(brief, catalog, count, density, budgetScale(context));
|
|
154
|
+
let outline = readOutline(await ask(request, outlineSchema(catalog, count), planRoom(count.max)), byId);
|
|
120
155
|
if (outline.problem) {
|
|
121
156
|
const retry = `${request}\n\nYour previous answer could not be used: ${outline.problem}. Answer again using only the listed patterns.`;
|
|
122
|
-
outline = readOutline(await ask(retry, outlineSchema(catalog, count)), byId);
|
|
157
|
+
outline = readOutline(await ask(retry, outlineSchema(catalog, count), planRoom(count.max)), byId);
|
|
123
158
|
if (outline.problem)
|
|
124
159
|
throw new PlanError(`The model did not produce a usable outline: ${outline.problem}`);
|
|
125
160
|
}
|
|
@@ -141,10 +176,12 @@ export async function editPlan(template, plan, instruction, options) {
|
|
|
141
176
|
.join('\n')}`,
|
|
142
177
|
`Requested change:\n${request}`,
|
|
143
178
|
`Return the whole plan after the change. Choose patterns from this list ("?" marks an optional slot):`,
|
|
144
|
-
describeCatalog(catalog, context
|
|
179
|
+
describeCatalog(catalog, budgetScale(context)),
|
|
145
180
|
[
|
|
146
181
|
'- Change only what the request asks for. Keep every other slide, its pattern, its purpose and its place.',
|
|
147
182
|
'- Choose a pattern only when the content can fill every required slot within its limits.',
|
|
183
|
+
`- ${SLIDE_KIND_RULE}`,
|
|
184
|
+
...(plan.brief.textOnly ? ['- This deck was asked to be text only: keep to the patterns marked "Plain text." unless the requested change asks for something else.'] : []),
|
|
148
185
|
`- ${DENSITY_GUIDANCE[density]}`,
|
|
149
186
|
].join('\n'),
|
|
150
187
|
].join('\n\n');
|
|
@@ -161,7 +198,7 @@ export async function editPlan(template, plan, instruction, options) {
|
|
|
161
198
|
type: 'object',
|
|
162
199
|
properties: {
|
|
163
200
|
pattern: { type: 'string', enum: catalog.patterns.map((pattern) => pattern.def.id) },
|
|
164
|
-
purpose: { type: 'string', description: 'The one point this slide makes
|
|
201
|
+
purpose: { type: 'string', description: 'The one point this slide makes: a single sentence of at most 25 words' },
|
|
165
202
|
...itemsProperty(catalog),
|
|
166
203
|
},
|
|
167
204
|
required: ['pattern', 'purpose'],
|
|
@@ -170,11 +207,13 @@ export async function editPlan(template, plan, instruction, options) {
|
|
|
170
207
|
},
|
|
171
208
|
required: ['summary', 'language', 'title', 'slides'],
|
|
172
209
|
};
|
|
173
|
-
const ask = asker(options.llm, systemPrompt(language, 'brief'), options.signal);
|
|
174
|
-
|
|
210
|
+
const ask = asker(options.llm, systemPrompt(language, 'brief'), options.signal, 'low');
|
|
211
|
+
// An edit may add slides, so the room is for a plan somewhat longer than the one it starts from.
|
|
212
|
+
const room = planRoom(plan.slides.length + 10);
|
|
213
|
+
let answer = (await ask(prompt, schema, room));
|
|
175
214
|
let outline = readOutline(answer, byId);
|
|
176
215
|
if (outline.problem) {
|
|
177
|
-
answer = (await ask(`${prompt}\n\nYour previous answer could not be used: ${outline.problem}. Answer again using only the listed patterns.`, schema));
|
|
216
|
+
answer = (await ask(`${prompt}\n\nYour previous answer could not be used: ${outline.problem}. Answer again using only the listed patterns.`, schema, room));
|
|
178
217
|
outline = readOutline(answer, byId);
|
|
179
218
|
if (outline.problem)
|
|
180
219
|
throw new PlanError(`The model did not produce a usable plan: ${outline.problem}`);
|
|
@@ -227,6 +266,8 @@ export async function writeDeck(template, plan, options) {
|
|
|
227
266
|
return deck;
|
|
228
267
|
},
|
|
229
268
|
manifest: template.manifest,
|
|
269
|
+
measure: measurerFor(template),
|
|
270
|
+
review: reviewWith(options),
|
|
230
271
|
layout,
|
|
231
272
|
maxRepairs: options.maxRepairs ?? 2,
|
|
232
273
|
onRepair: (attempt, issues) => options.onProgress?.({ stage: 'repair', attempt, issues }),
|