slotdeck 0.1.0 → 0.1.2

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 (51) hide show
  1. package/README.md +16 -1
  2. package/dist/deck/validate.js +12 -5
  3. package/dist/deck/validate.js.map +1 -1
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.js +1 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/llm/gemini.d.ts +4 -0
  8. package/dist/llm/gemini.js +43 -7
  9. package/dist/llm/gemini.js.map +1 -1
  10. package/dist/llm/provider.d.ts +12 -0
  11. package/dist/plan/catalog.d.ts +11 -1
  12. package/dist/plan/catalog.js +20 -7
  13. package/dist/plan/catalog.js.map +1 -1
  14. package/dist/plan/edit.js +9 -5
  15. package/dist/plan/edit.js.map +1 -1
  16. package/dist/plan/plan.d.ts +16 -2
  17. package/dist/plan/plan.js +50 -17
  18. package/dist/plan/plan.js.map +1 -1
  19. package/dist/plan/write.d.ts +8 -1
  20. package/dist/plan/write.js +29 -3
  21. package/dist/plan/write.js.map +1 -1
  22. package/dist/render/render.js +4 -4
  23. package/dist/render/render.js.map +1 -1
  24. package/dist/template/change.d.ts +1 -0
  25. package/dist/template/change.js +12 -0
  26. package/dist/template/change.js.map +1 -1
  27. package/dist/template/instruct.js +4 -2
  28. package/dist/template/instruct.js.map +1 -1
  29. package/dist/template/manifest.d.ts +16 -0
  30. package/dist/template/manifest.js +26 -0
  31. package/dist/template/manifest.js.map +1 -1
  32. package/dist/template/sample.js +4 -3
  33. package/dist/template/sample.js.map +1 -1
  34. package/dist/tools.js +6 -0
  35. package/dist/tools.js.map +1 -1
  36. package/docs/README.md +77 -0
  37. package/docs/api-reference.md +680 -0
  38. package/docs/changelog.md +107 -0
  39. package/docs/chat-tools.md +257 -0
  40. package/docs/concepts.md +126 -0
  41. package/docs/deck-format.md +225 -0
  42. package/docs/generating.md +254 -0
  43. package/docs/getting-started.md +139 -0
  44. package/docs/languages.md +83 -0
  45. package/docs/layout-freedom.md +136 -0
  46. package/docs/manifest-format.md +208 -0
  47. package/docs/providers.md +281 -0
  48. package/docs/rendering.md +172 -0
  49. package/docs/template-studio.md +379 -0
  50. package/docs/troubleshooting.md +174 -0
  51. package/package.json +3 -2
package/README.md CHANGED
@@ -30,6 +30,16 @@ npm install slotdeck
30
30
 
31
31
  Node 22.18 or later. The package is ESM.
32
32
 
33
+ ## Documentation
34
+
35
+ The full documentation is in [`docs/`](docs/README.md): concepts, both JSON formats, every function and option,
36
+ the chat tools, connecting your own model, the template studio, and every error message with its fix.
37
+
38
+ It is plain Markdown with no links to the internet, and it ships inside the npm package
39
+ (`node_modules/slotdeck/docs/`), so a coding assistant without network access can read it where the package is
40
+ installed. This page is the overview. What changed in each version is in
41
+ [`docs/changelog.md`](docs/changelog.md).
42
+
33
43
  ## How it works
34
44
 
35
45
  A template is an ordinary deck of sample slides, the kind a designer hands over:
@@ -128,6 +138,10 @@ contains figures. In a live run without this guard the model filled such a slide
128
138
  `numberPatterns: 'always'` to offer them regardless, or `'never'` to rule them out. Chart values the brief does
129
139
  not state come back as warnings (`chart values not stated in the brief: 89`).
130
140
 
141
+ A wish about the kind of slides, such as "text only" or "no tables", decides which patterns may be used and
142
+ comes before variety. For a deck of text and nothing else, set `textOnly: true` on the brief (`text_only` in the
143
+ chat tool): only the template's plain text patterns are then offered.
144
+
131
145
  ### Editing a deck
132
146
 
133
147
  ```ts
@@ -275,7 +289,8 @@ manifest allows and the code moves the shapes; the model never positions anythin
275
289
  figures in a three-column grid make two rows of two, five make three and two, three make one row.
276
290
  - **Larger text.** `textScale` on a deck (or `textSize: 'large' | 'x-large'` on a brief) enlarges body text:
277
291
  slots of 12 pt and under by default, not titles. Because the boxes stay the same size, character budgets fall
278
- with the square of the scale, so the model writes less.
292
+ with the square of the scale, so the model writes less. A template whose own body text is small can be
293
+ enlarged once for every deck with `textScale` on the manifest.
279
294
  - **Derived patterns.** Several patterns can come from one slide. A text slot can be moved and resized (`box`),
280
295
  given a font size (`fontSize`) and paragraph spacing, and any shape can be dropped. In the demo template
281
296
  `text-only` is the photo slide with its photo dropped and its text widened, and `chart-native` is the chart
@@ -1,4 +1,4 @@
1
- import { effectiveSlots, itemRange, slotSources, textBudget } from '../template/manifest.js';
1
+ import { bodyTextScale, effectiveSlots, itemRange, slotSources, tableAtScale, textBudget } from '../template/manifest.js';
2
2
  import { isChartValue, isImageRef, isTableValue, toParagraphs } from './spec.js';
3
3
  export class DeckValidationError extends Error {
4
4
  issues;
@@ -139,8 +139,8 @@ export function validateDeck(manifest, deck, options = {}) {
139
139
  }
140
140
  const action = resolved.action;
141
141
  if (action.type === 'text' && slot.kind === 'text') {
142
- // Larger deck text leaves less room in the same box.
143
- const budget = textBudget(slot, deck.textScale);
142
+ // Larger text, asked for by the template or the deck, leaves less room in the same box.
143
+ const budget = textBudget(slot, bodyTextScale(manifest, deck.textScale));
144
144
  const chars = action.paragraphs.reduce((sum, paragraph) => sum + paragraph.length, 0);
145
145
  if (budget.maxChars !== undefined && chars > budget.maxChars) {
146
146
  issues.push({
@@ -167,8 +167,10 @@ export function validateDeck(manifest, deck, options = {}) {
167
167
  if (slot.maxRows !== undefined && rows.length > slot.maxRows)
168
168
  warn(`the table has ${rows.length} rows; the slot fits ${slot.maxRows}`);
169
169
  const longest = Math.max(0, ...[header, ...rows].flat().map((cell) => cell.length));
170
- if (slot.maxCellChars !== undefined && longest > slot.maxCellChars)
171
- warn(`a cell is ${longest} characters; cells fit about ${slot.maxCellChars}`);
170
+ // Enlarged table text leaves less room in a cell.
171
+ const cellChars = tableAtScale(slot, bodyTextScale(manifest, deck.textScale)).maxCellChars;
172
+ if (cellChars !== undefined && longest > cellChars)
173
+ warn(`a cell is ${longest} characters; cells fit about ${cellChars}`);
172
174
  }
173
175
  if (action.type === 'chart' && slot.kind === 'chart') {
174
176
  const { categories, series } = action.chart;
@@ -178,6 +180,11 @@ export function validateDeck(manifest, deck, options = {}) {
178
180
  }
179
181
  if (slot.maxSeries !== undefined && series.length > slot.maxSeries)
180
182
  warn(`the chart has ${series.length} series; the slot fits ${slot.maxSeries}`);
183
+ // A format the renderer does not know is shown as plain numbers, which is worth saying.
184
+ const format = slide.slots[source]?.format;
185
+ if (format !== undefined && format !== 'number' && format !== 'percent') {
186
+ warn(`chart format ${JSON.stringify(format)} is not known and is ignored; use "number" or "percent"`);
187
+ }
181
188
  }
182
189
  if (action.type === 'image' && assets && !assets.has(action.image.asset)) {
183
190
  issues.push({ severity: 'error', slide: number, slot: source, message: `asset "${action.image.asset}" was not provided` });
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/deck/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/deck/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1H,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAajF,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,MAAM,CAAU;IAEzB,YAAY,MAAe;QACzB,KAAK,CACH,6BAA6B,MAAM;aAChC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aAC/H,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAiBD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,IAAa,EACb,KAAgB,EAChB,IAAc,EACd,MAAkB,EAClB,MAAM,GAAW,IAAI,CAAC,IAAI;IAE1B,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAClE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC;IAErC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAChG,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC;QAChC,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QACxE,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC7D,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;QAClE,IAAI,MAAM,KAAK,UAAU;YAAE,OAAO,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAC;QAChG,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;IACxC,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,+DAA+D,EAAE,CAAC;QAC5G,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,MAAM,IAAI,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,OAAO,MAAM,GAAG,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,yBAAyB,MAAM,CAAC,MAAM,UAAU,EAAE,CAAC;QACjI,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAChE,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,KAAK,EAAE,oHAAoH,EAAE,CAAC;QACzI,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,uBAAuB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3H,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACrF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;QAC7E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACtC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;SACvE,CAAC,CAAC,CAAC;QACJ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;QACrE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;YACjE,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC9C,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,QAAQ,KAAK,CAAC,MAAM,CAAC,MAAM,0BAA0B,UAAU,CAAC,MAAM,aAAa,EAAE,CAAC;YAChH,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,mCAAmC,EAAE,CAAC;QAC7H,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC;QACxG,MAAM,KAAK,GAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;YAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACzF,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QACvG,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;QAC/E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;QACvE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,uDAAuD,EAAE,CAAC;IAClG,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;AACrD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,YAAY,CAAC,QAA0B,EAAE,IAAc,EAAE,OAAO,GAAoB,EAAE;IACpG,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAqB,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACxG,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC;IAE/E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,oBAAoB,KAAK,CAAC,OAAO,iBAAiB,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC9F,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,OAAO,CAAC,EAAE,mDAAmD,EAAE,CAAC,CAAC;QAC1I,CAAC;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACjI,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,YAAY,OAAO,CAAC,EAAE,WAAW,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,UAAU,KAAK,CAAC,KAAK,EAAE;aAC7H,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,OAAO,CAAC,EAAE,6BAA6B,EAAE,CAAC,CAAC;YAChI,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,gGAAgG;YAChG,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;YACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACjG,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzF,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACnD,wFAAwF;gBACxF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBACzE,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACtF,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC7D,MAAM,CAAC,IAAI,CAAC;wBACV,QAAQ,EAAE,SAAS;wBACnB,KAAK,EAAE,MAAM;wBACb,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,WAAW,KAAK,oCAAoC,MAAM,CAAC,QAAQ,EAAE;qBAC/E,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;oBAC1F,MAAM,CAAC,IAAI,CAAC;wBACV,QAAQ,EAAE,SAAS;wBACnB,KAAK,EAAE,MAAM;wBACb,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,YAAY,MAAM,CAAC,UAAU,CAAC,MAAM,8BAA8B,MAAM,CAAC,aAAa,EAAE;qBAClG,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;gBACtC,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7G,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU;oBAAE,IAAI,CAAC,iBAAiB,MAAM,CAAC,MAAM,2BAA2B,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBACvJ,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO;oBAAE,IAAI,CAAC,iBAAiB,IAAI,CAAC,MAAM,wBAAwB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvI,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpF,kDAAkD;gBAClD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;gBAC3F,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,GAAG,SAAS;oBAAE,IAAI,CAAC,aAAa,OAAO,gCAAgC,SAAS,EAAE,CAAC,CAAC;YAC5H,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrD,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC5C,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7G,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC/E,IAAI,CAAC,iBAAiB,UAAU,CAAC,MAAM,8BAA8B,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;gBAC7F,CAAC;gBACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,iBAAiB,MAAM,CAAC,MAAM,0BAA0B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBACnJ,wFAAwF;gBACxF,MAAM,MAAM,GAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAA6C,EAAE,MAAM,CAAC;gBACxF,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACxE,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC;gBACxG,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,KAAK,oBAAoB,EAAE,CAAC,CAAC;YAC7H,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -12,6 +12,7 @@ export { resolveAssets } from './plan/assets.ts';
12
12
  export type { ResolveOptions } from './plan/assets.ts';
13
13
  export { extractAssets } from './render/extract.ts';
14
14
  export type { AssetDef, IconDef, ImageDensity } from './plan/catalog.ts';
15
+ export { isPlainText } from './plan/catalog.ts';
15
16
  export { loadTemplate, renderDeck } from './render/render.ts';
16
17
  export type { RenderOptions, RenderResult, Template } from './render/render.ts';
17
18
  export type { ImageProvider, ImageRequest, JsonRequest, JsonSchema, LlmProvider } from './llm/provider.ts';
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ export { PlanError, directionOf, editPlan, planDeck, planOutline, writeDeck } fr
8
8
  export { planEdit } from './plan/edit.js';
9
9
  export { resolveAssets } from './plan/assets.js';
10
10
  export { extractAssets } from './render/extract.js';
11
+ export { isPlainText } from './plan/catalog.js';
11
12
  export { loadTemplate, renderDeck } from './render/render.js';
12
13
  export { GEMINI_DEVELOPER_ENDPOINT, GeminiError, gemini, geminiImages, vertexEndpoint } from './llm/gemini.js';
13
14
  // Decks.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGvD,0EAA0E;AAC1E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,kDAAkD;AAClD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpG,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAK9D,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG/G,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAExE,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAmBxD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGvD,0EAA0E;AAC1E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,kDAAkD;AAClD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpG,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAK9D,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG/G,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAExE,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAmBxD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -18,6 +18,10 @@ interface GeminiConnection {
18
18
  }
19
19
  export interface GeminiOptions extends GeminiConnection {
20
20
  thinkingLevel?: 'minimal' | 'low' | 'medium' | 'high';
21
+ /**
22
+ * Output limit of a request in tokens, reasoning included. By default it is the caller's own
23
+ * estimate of the answer plus 8192 for reasoning, or 24576 when the caller gives no estimate.
24
+ */
21
25
  maxOutputTokens?: number;
22
26
  }
23
27
  export interface GeminiImageOptions extends GeminiConnection {
@@ -4,6 +4,10 @@ export function vertexEndpoint(project, location = 'global') {
4
4
  const host = location === 'global' ? 'aiplatform.googleapis.com' : `${location}-aiplatform.googleapis.com`;
5
5
  return `https://${host}/v1beta1/projects/${project}/locations/${location}/interactions`;
6
6
  }
7
+ /** Room for an answer when the caller does not say how large it may be. */
8
+ const DEFAULT_ANSWER_TOKENS = 16_384;
9
+ /** Room for reasoning, which Gemini counts against the same limit as the answer. */
10
+ const REASONING_TOKENS = 8_192;
7
11
  export class GeminiError extends Error {
8
12
  status;
9
13
  constructor(message, status) {
@@ -12,7 +16,7 @@ export class GeminiError extends Error {
12
16
  this.status = status;
13
17
  }
14
18
  }
15
- async function createInteraction(connection, body, signal) {
19
+ async function createInteraction(connection, body, signal, acceptCutOff = false) {
16
20
  const extra = typeof connection.headers === 'function' ? await connection.headers() : connection.headers;
17
21
  const headers = { 'Content-Type': 'application/json', ...extra };
18
22
  if (connection.apiKey)
@@ -47,12 +51,24 @@ async function createInteraction(connection, body, signal) {
47
51
  throw new GeminiError(`Gemini request failed (${response.status}): ${message}`, response.status);
48
52
  }
49
53
  const interaction = (parsed ?? {});
54
+ // An answer cut off at the output limit is for the caller to deal with, when it says it can.
55
+ if (interaction.status === 'incomplete' && acceptCutOff)
56
+ return interaction;
50
57
  if (interaction.status !== 'completed') {
51
58
  const reason = interaction.errors?.map((error) => error.message).filter(Boolean).join('; ');
52
59
  throw new GeminiError(`Gemini interaction ended with status "${interaction.status ?? 'unknown'}"${reason ? `: ${reason}` : ''}`);
53
60
  }
54
61
  return interaction;
55
62
  }
63
+ /**
64
+ * Failures that the same request usually does not repeat: a server error, or the service's
65
+ * recitation filter tripping on an ordinary answer. Bad keys, quotas and bad requests are not among them.
66
+ */
67
+ function passesByItself(error) {
68
+ if (!(error instanceof GeminiError))
69
+ return false;
70
+ return (error.status !== undefined && error.status >= 500 && error.status <= 504) || /recitation/i.test(error.message);
71
+ }
56
72
  function outputBlocks(interaction) {
57
73
  return (interaction.steps ?? []).filter((step) => step.type === 'model_output').flatMap((step) => step.content ?? []);
58
74
  }
@@ -60,11 +76,15 @@ function outputBlocks(interaction) {
60
76
  export function gemini(options) {
61
77
  return {
62
78
  async generateJson(request) {
63
- const generationConfig = {};
79
+ // Every request has an output limit. Now and then a model runs away inside one text field and
80
+ // writes until it is stopped; without a limit that takes minutes and tens of thousands of tokens.
81
+ const limit = options.maxOutputTokens ?? Math.ceil(request.maxOutputTokens ?? DEFAULT_ANSWER_TOKENS) + REASONING_TOKENS;
82
+ const generationConfig = { max_output_tokens: limit };
83
+ // A level set on the adapter is the caller's decision; otherwise a request that needs little reasoning gets little.
64
84
  if (options.thinkingLevel)
65
85
  generationConfig.thinking_level = options.thinkingLevel;
66
- if (options.maxOutputTokens)
67
- generationConfig.max_output_tokens = options.maxOutputTokens;
86
+ else if (request.effort === 'low')
87
+ generationConfig.thinking_level = 'low';
68
88
  // With pictures, the input becomes one user step holding the text and each picture.
69
89
  const input = request.images?.length
70
90
  ? [
@@ -85,9 +105,25 @@ export function gemini(options) {
85
105
  // One-shot calls: nothing to chain to, so nothing needs to be kept server-side.
86
106
  store: false,
87
107
  };
88
- if (Object.keys(generationConfig).length > 0)
89
- body.generation_config = generationConfig;
90
- const interaction = await createInteraction(options, body, request.signal);
108
+ body.generation_config = generationConfig;
109
+ const send = () => createInteraction(options, body, request.signal, true);
110
+ let interaction;
111
+ try {
112
+ interaction = await send();
113
+ }
114
+ catch (error) {
115
+ // A failure that comes and goes by chance is worth one more try; any other is the caller's to see.
116
+ if (!passesByItself(error))
117
+ throw error;
118
+ interaction = await send();
119
+ }
120
+ if (interaction.status === 'incomplete') {
121
+ // Running away is a matter of chance too, so the same request is sent once more.
122
+ interaction = await send();
123
+ if (interaction.status === 'incomplete') {
124
+ throw new GeminiError(`Gemini's answer was cut off at the limit of ${limit} tokens, twice. The model is probably running away inside a text field; try again, or set thinkingLevel to "low"`);
125
+ }
126
+ }
91
127
  const text = outputBlocks(interaction)
92
128
  .filter((block) => block.type === 'text')
93
129
  .map((block) => block.text ?? '')
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/llm/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/llm/gemini.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,18 @@ export interface JsonRequest {
8
8
  prompt: string;
9
9
  /** Schema the answer must follow. Providers without schema support may treat it as guidance. */
10
10
  schema: JsonSchema;
11
+ /**
12
+ * A ceiling on the size of the answer in tokens, when the caller can estimate one. It does not
13
+ * count tokens a model spends reasoning. A provider should pass it on as its output limit: a
14
+ * model sometimes runs away inside a text field, and a limit ends that in seconds.
15
+ */
16
+ maxOutputTokens?: number;
17
+ /**
18
+ * `low` when the answer is short and structural, such as choosing a layout for each slide. A
19
+ * provider whose model has a reasoning setting should use a light one for these: it is several
20
+ * times faster, and long reasoning before a short answer is where models were seen to run away.
21
+ */
22
+ effort?: 'low';
11
23
  /** Pictures to look at alongside the prompt, e.g. a rendered slide. A provider that cannot see may ignore them. */
12
24
  images?: Array<{
13
25
  mimeType: string;
@@ -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. */
@@ -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(slot, scale = 1) {
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,27 @@ 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
151
  const count = repeat && range && range.max > range.min ? `\n items: ${range.min} to ${range.max} ${repeat.item}s, numbered N = 1, 2, ...` : '';
141
- return `- ${pattern.def.id}: ${pattern.def.description}\n slots: ${slots}${count}`;
152
+ // Said in so many words, so that a wish for text-only slides can be met without guessing from the slots.
153
+ const plain = isPlainText(pattern.def) ? ' Plain text.' : '';
154
+ return `- ${pattern.def.id}: ${pattern.def.description}${plain}\n slots: ${slots}${count}`;
142
155
  })
143
156
  .join('\n');
144
157
  }
145
158
  function slotSchema(planned, context) {
146
159
  const { slot } = planned;
147
- const note = [slot.description, limits(slot, context.textScale)].filter(Boolean).join('. ');
160
+ const note = [slot.description, limits(slot, budgetScale(context))].filter(Boolean).join('. ');
148
161
  switch (planned.mode) {
149
162
  case 'text':
150
163
  return { type: 'string', description: note || 'Text' };
151
164
  case 'paragraphs': {
152
165
  const schema = { type: 'array', items: { type: 'string' }, minItems: 1, description: note || 'One string per paragraph' };
153
- const most = textBudget(planned.slot, context.textScale).maxParagraphs;
166
+ const most = textBudget(planned.slot, budgetScale(context)).maxParagraphs;
154
167
  if (most !== undefined)
155
168
  schema.maxItems = most;
156
169
  return schema;
@@ -262,7 +275,7 @@ export function outlineSchema(catalog, count) {
262
275
  type: 'object',
263
276
  properties: {
264
277
  pattern: { type: 'string', enum: catalog.patterns.map((pattern) => pattern.def.id) },
265
- purpose: { type: 'string', description: 'The one point this slide makes, in a sentence' },
278
+ purpose: { type: 'string', description: 'The one point this slide makes: a single sentence of at most 25 words' },
266
279
  ...itemsProperty(catalog),
267
280
  },
268
281
  required: ['pattern', 'purpose'],
@@ -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,8 @@ 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 { buildCatalog, describeCatalog, planPattern, readItems } from './catalog.js';
6
- import { PlanError, asker, directionOf, hasFigures } from './plan.js';
5
+ import { budgetScale, buildCatalog, describeCatalog, planPattern, readItems } from './catalog.js';
6
+ import { PlanError, SLIDE_KIND_RULE, asker, directionOf, hasFigures, planRoom } from './plan.js';
7
7
  import { cleanText, suppliesText, systemPrompt, writeSlides } from './write.js';
8
8
  function describeValue(value) {
9
9
  if (value === undefined || value === null)
@@ -114,6 +114,7 @@ export async function planEdit(template, deck, instruction, options) {
114
114
  imageDensity: options.imageDensity ?? 'medium',
115
115
  figures,
116
116
  textScale: deck.textScale ?? 1,
117
+ templateScale: manifest.textScale ?? 1,
117
118
  };
118
119
  const currentSize = (Object.entries(TEXT_SIZES).find(([, factor]) => factor === context.textScale)?.[0] ?? 'normal');
119
120
  if (options.patterns)
@@ -140,11 +141,12 @@ export async function planEdit(template, deck, instruction, options) {
140
141
  'Return the slides of the deck after the change, in their new order.',
141
142
  '- 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
143
  '- pattern: keep the pattern of an existing slide unless the request calls for a different layout.',
144
+ ` ${SLIDE_KIND_RULE}`,
143
145
  '- change: what to write or change on that slide. Leave it empty for every slide the request does not touch.',
144
146
  '- images: true only when the pictures or icons of that slide should change.',
145
147
  '- items: for a pattern with a row of items, the number the slide has after the change.',
146
148
  ].join('\n'),
147
- offer.patterns.length > 0 ? `Patterns for new slides ("?" marks an optional slot):\n${describeCatalog(offer, context.textScale)}` : '',
149
+ offer.patterns.length > 0 ? `Patterns for new slides ("?" marks an optional slot):\n${describeCatalog(offer, budgetScale(context))}` : '',
148
150
  ]
149
151
  .filter(Boolean)
150
152
  .join('\n\n');
@@ -199,10 +201,12 @@ export async function planEdit(template, deck, instruction, options) {
199
201
  };
200
202
  const mostItems = Math.max(0, ...patternIds.map((id) => itemRange(definitions.get(id))).map((range) => (range && range.max > range.min ? range.max : 0)));
201
203
  const planSchema = editPlanSchema(patternIds, deck.slides.length, fieldNames, mostItems);
202
- let plan = readPlan(await asker(options.llm, systemPrompt(currentLanguage, 'deck'), options.signal)(planRequest, planSchema));
204
+ // The edit plan says a little more for each slide than an outline does, and may add slides.
205
+ const room = planRoom(deck.slides.length + 10) * 1.5;
206
+ let plan = readPlan(await asker(options.llm, systemPrompt(currentLanguage, 'deck'), options.signal, 'low')(planRequest, planSchema, room));
203
207
  if (plan.problem) {
204
208
  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));
209
+ plan = readPlan(await asker(options.llm, systemPrompt(currentLanguage, 'deck'), options.signal, 'low')(retry, planSchema, room));
206
210
  if (plan.problem)
207
211
  throw new PlanError(`The model did not produce a usable edit plan: ${plan.problem}`);
208
212
  }