@book.dev/sdk 3.16.0 → 3.18.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/dist/ai.d.ts CHANGED
@@ -242,7 +242,7 @@ export interface AgentProposal {
242
242
  * rowIndex, toIndex}` / `{tableId, rowIndex, colIndex, text}` — or a `cellId`
243
243
  * (which resolves both indices), matching `cellPosition`.
244
244
  */
245
- kind: 'set_kit_value' | 'set_db_cell' | 'update_block' | 'append_blocks' | 'set_page_theme' | 'delete_block' | 'set_block_props' | TableOpKind;
245
+ kind: 'set_kit_value' | 'set_db_cell' | 'update_block' | 'append_blocks' | 'insert_blocks' | 'move_block' | 'set_page_theme' | 'set_page_appearance' | 'move_page' | 'set_page_properties' | 'delete_block' | 'set_block_props' | 'create_database' | 'update_database' | 'create_property' | 'update_property' | 'update_row' | 'delete_row' | TableOpKind;
246
246
  /** One-line human summary, e.g. `Set "budget" = 1200`. */
247
247
  summary: string;
248
248
  /** The page this change targets (for block/kit writes). */
@@ -0,0 +1,28 @@
1
+ export declare const AGENT_ASSET_MIMES: ReadonlySet<string>;
2
+ export type AssetUploadErrorCode = 'mime-not-allowed' | 'too-large' | 'malformed-base64' | 'page-not-found' | 'read-only';
3
+ export declare class AssetUploadError extends Error {
4
+ readonly code: AssetUploadErrorCode;
5
+ constructor(code: AssetUploadErrorCode, message: string);
6
+ }
7
+ export interface AgentAssetUploadInput {
8
+ pageId: string;
9
+ mime: string;
10
+ base64: string;
11
+ }
12
+ export interface AgentAssetUploadResult {
13
+ assetId: string;
14
+ url?: string;
15
+ bytes: number;
16
+ mime: string;
17
+ }
18
+ export interface AgentAssetUploader {
19
+ pageExists(pageId: string): Promise<boolean>;
20
+ canWrite(pageId: string): Promise<boolean | 'direct' | 'suggest'>;
21
+ put(bytes: Uint8Array, mime: string, pageId: string): Promise<{
22
+ id: string;
23
+ url?: string;
24
+ }>;
25
+ }
26
+ /** Shared upload implementation used by both the MCP and in-app agent tools. */
27
+ export declare function uploadAgentAsset(input: AgentAssetUploadInput, uploader: AgentAssetUploader, decode?: (base64: string) => Uint8Array): Promise<AgentAssetUploadResult>;
28
+ export declare function decodeStrictBase64(raw: string): Uint8Array;
@@ -0,0 +1,54 @@
1
+ import { ASSET_IMAGE_MIMES, DEFAULT_MAX_ASSET_BYTES } from './importAssets';
2
+ export const AGENT_ASSET_MIMES = new Set([
3
+ ...ASSET_IMAGE_MIMES,
4
+ 'application/octet-stream',
5
+ ]);
6
+ export class AssetUploadError extends Error {
7
+ constructor(code, message) {
8
+ super(message);
9
+ this.code = code;
10
+ this.name = 'AssetUploadError';
11
+ }
12
+ }
13
+ /** Shared upload implementation used by both the MCP and in-app agent tools. */
14
+ export async function uploadAgentAsset(input, uploader, decode = decodeStrictBase64) {
15
+ const mime = input.mime.trim().toLowerCase();
16
+ if (!AGENT_ASSET_MIMES.has(mime)) {
17
+ throw new AssetUploadError('mime-not-allowed', `Asset MIME type "${input.mime}" is not allowed.`);
18
+ }
19
+ const pad = input.base64.endsWith('==') ? 2 : input.base64.endsWith('=') ? 1 : 0;
20
+ if (input.base64.length / 4 * 3 - pad > DEFAULT_MAX_ASSET_BYTES) {
21
+ throw new AssetUploadError('too-large', `Asset exceeds the ${DEFAULT_MAX_ASSET_BYTES}-byte limit.`);
22
+ }
23
+ if (!(await uploader.pageExists(input.pageId))) {
24
+ throw new AssetUploadError('page-not-found', 'Page not found.');
25
+ }
26
+ const writePolicy = await uploader.canWrite(input.pageId);
27
+ if (writePolicy === 'suggest') {
28
+ throw new AssetUploadError('read-only', 'Uploads apply immediately and are never queued as suggestions, so this page needs direct agent-edit access.');
29
+ }
30
+ if (writePolicy !== true && writePolicy !== 'direct') {
31
+ throw new AssetUploadError('read-only', 'This page or instance is read-only.');
32
+ }
33
+ const bytes = decode(input.base64);
34
+ if (bytes.byteLength === 0)
35
+ throw new AssetUploadError('malformed-base64', 'Base64 payload is empty or malformed.');
36
+ if (bytes.byteLength > DEFAULT_MAX_ASSET_BYTES) {
37
+ throw new AssetUploadError('too-large', `Asset exceeds the ${DEFAULT_MAX_ASSET_BYTES}-byte limit.`);
38
+ }
39
+ const stored = await uploader.put(bytes, mime, input.pageId);
40
+ return { assetId: stored.id, ...(stored.url ? { url: stored.url } : {}), bytes: bytes.byteLength, mime };
41
+ }
42
+ export function decodeStrictBase64(raw) {
43
+ if (!raw || raw.length % 4 !== 0 || !/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(raw)) {
44
+ throw new AssetUploadError('malformed-base64', 'Base64 payload is malformed.');
45
+ }
46
+ try {
47
+ const binary = atob(raw);
48
+ return Uint8Array.from(binary, (char) => char.charCodeAt(0));
49
+ }
50
+ catch {
51
+ throw new AssetUploadError('malformed-base64', 'Base64 payload is malformed.');
52
+ }
53
+ }
54
+ //# sourceMappingURL=assetUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetUpload.js","sourceRoot":"","sources":["../src/assetUpload.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,4 @@
1
- /**
2
- * The block-type catalogue — the ONE types-only description of every block the
3
- * editor can render, shared by every layer that must reason about block types
4
- * without importing React:
5
- *
6
- * - the UI's block model derives `BlockType`, `TEXT_BLOCKS` and
7
- * `CONTAINER_BLOCKS` FROM this file (packages/ui/src/blockeditor/model.ts),
8
- * so the core union cannot drift from the catalogue by construction;
9
- * - the UI's runtime registry (registry.tsx + kit) is pinned to the `kit`
10
- * entries by a drift-guard test (packages/ui/src/blockeditor/
11
- * registryCatalogue.test.tsx) that registers every built-in custom block and
12
- * fails when the registry and the catalogue disagree in either direction;
13
- * - the server agent and the MCP server validate `add_blocks` /
14
- * `create_artifact_page` / `update_block_props` payloads against it and
15
- * serve it via their `list_block_types` tools.
16
- *
17
- * History: before this file the agent kept a hand-written `KNOWN_BLOCK_TYPES`
18
- * and the MCP server a hand-written `ARTIFACT_TYPES`; the two disagreed with
19
- * each other AND with the real registry (table/row/cell, image, notes, and
20
- * several kit blocks were missing from one or both). Those lists are gone —
21
- * everything reads this catalogue.
22
- *
23
- * Plugin blocks are NOT enumerated here (they are installed per library, not
24
- * compiled in). They are namespaced `<pluginId>/<type>` (plugins/api.ts), a
25
- * plugin declares its block types in its manifest (`PluginManifest.blocks`),
26
- * and validators accept them by pattern + an installed-plugin lookup where one
27
- * is available — see {@link isPluginBlockType} and {@link findUnknownBlockType}.
28
- */
1
+ export { BLOCK_PROP_JSON_SCHEMAS, BLOCK_PROP_SCHEMAS } from './blockPropSchemas';
29
2
  /** How a block stores content: `container` blocks carry child blocks in
30
3
  * `children`, `text` blocks carry rich text in `text`, `void` blocks carry
31
4
  * only `props` (all kit widgets are void). */
@@ -46,12 +19,9 @@ export interface BlockTypeInfo {
46
19
  * inside (column→columns, row→table, cell→row, tab→tabs,
47
20
  * accordionsection→accordion). */
48
21
  readonly parent?: string;
49
- /** Well-known props → expected value type. Validation is permissive: props
50
- * NOT declared here always pass (the editor ignores what it doesn't know);
51
- * declared ones must match, `null` always passes (it removes the key). */
22
+ /** Agent-facing coarse summary; validation uses BLOCK_PROP_SCHEMAS. */
52
23
  readonly props?: Readonly<Record<string, BlockPropType>>;
53
- /** Publishes a named value into the page's reactive kit scope (mirrors
54
- * `INPUT_TYPES` in packages/ui/src/blockeditor/kit/scope.ts). */
24
+ /** Publishes a named value into the page's reactive kit scope. */
55
25
  readonly kitValue?: boolean;
56
26
  /** One-line usage hint surfaced in tool descriptions / list_block_types. */
57
27
  readonly hint?: string;
@@ -125,19 +95,20 @@ declare const CATALOGUE_LITERAL: readonly [{
125
95
  readonly assetId: "string";
126
96
  readonly src: "string";
127
97
  readonly alt: "string";
98
+ readonly caption: "string";
128
99
  readonly width: "string";
129
100
  };
130
- readonly hint: "{assetId|src,alt?,width?:\"60%\"}";
101
+ readonly hint: "{assetId|src,alt?,caption?,width?} — width is a CSS length such as \"60%\"";
131
102
  }, {
132
103
  readonly type: "htmlArtifact";
133
104
  readonly category: "core";
134
105
  readonly nature: "void";
135
106
  readonly props: {
136
107
  readonly assetId: "string";
137
- readonly name: "string";
108
+ readonly title: "string";
138
109
  readonly height: "number";
139
110
  };
140
- readonly hint: "sandboxed HTML document {assetId,name?,height?}";
111
+ readonly hint: "sandboxed HTML document {assetId,title?,height?} — height is CSS px";
141
112
  }, {
142
113
  readonly type: "columns";
143
114
  readonly category: "core";
@@ -366,8 +337,11 @@ declare const CATALOGUE_LITERAL: readonly [{
366
337
  readonly props: {
367
338
  readonly name: "string";
368
339
  readonly label: "string";
340
+ readonly lat: "number";
341
+ readonly lng: "number";
342
+ readonly labeltext: "string";
369
343
  };
370
- readonly hint: "{name,label?}";
344
+ readonly hint: "{name,label?,lat?,lng?,labeltext?}";
371
345
  }, {
372
346
  readonly type: "actionbutton";
373
347
  readonly category: "kit";
@@ -485,6 +459,9 @@ export declare const BLOCK_TYPE_CATALOGUE: readonly BlockTypeInfo[];
485
459
  export declare const blockTypeInfo: (type: string) => BlockTypeInfo | undefined;
486
460
  /** Every catalogued (core + kit) type id. */
487
461
  export declare const KNOWN_BLOCK_TYPE_IDS: ReadonlySet<string>;
462
+ /** Every catalogue type that publishes a named value into the reactive kit scope.
463
+ * `progressbar` / `actionbutton` are deliberately not inputs: display/action blocks read scope but never publish. */
464
+ export declare const KIT_VALUE_BLOCK_TYPES: ReadonlySet<string>;
488
465
  /** Core types whose `children` hold ordinary blocks. */
489
466
  export declare const CONTAINER_BLOCK_TYPES: ReadonlySet<CoreBlockType>;
490
467
  /** Core types that carry editable rich text. */
@@ -574,11 +551,10 @@ export interface PluginBlockSource {
574
551
  * (`PluginManifest.blocks`). Pass the installed plugins where a listing is
575
552
  * available; omit it and the plugin section says so instead of guessing.
576
553
  */
577
- export declare function blockCatalogueText(plugins?: readonly PluginBlockSource[]): string;
554
+ export declare function blockCatalogueText(plugins?: readonly PluginBlockSource[], types?: readonly string[]): string;
578
555
  /**
579
556
  * The `add_blocks` tool description, generated from the catalogue so the type
580
557
  * list in the model's guidance can never drift from what validation accepts
581
558
  * (this replaces the old hand-written BLOCK_CATALOGUE prose in the agent).
582
559
  */
583
560
  export declare function addBlocksGuidance(): string;
584
- export {};
@@ -26,6 +26,8 @@
26
26
  * and validators accept them by pattern + an installed-plugin lookup where one
27
27
  * is available — see {@link isPluginBlockType} and {@link findUnknownBlockType}.
28
28
  */
29
+ import { BLOCK_PROP_JSON_SCHEMAS, BLOCK_PROP_SCHEMAS } from './blockPropSchemas';
30
+ export { BLOCK_PROP_JSON_SCHEMAS, BLOCK_PROP_SCHEMAS } from './blockPropSchemas';
29
31
  const CATALOGUE_LITERAL = [
30
32
  // ── Core text + structure ──────────────────────────────────────────────────
31
33
  { type: 'paragraph', category: 'core', nature: 'text', hint: 'plain rich text' },
@@ -39,10 +41,8 @@ const CATALOGUE_LITERAL = [
39
41
  { type: 'notes', category: 'core', nature: 'text', hint: 'speaker note — presenter view only, never exported' },
40
42
  { type: 'divider', category: 'core', nature: 'void' },
41
43
  // ── Core media leaves ──────────────────────────────────────────────────────
42
- // `width` is a CSS length STRING (the editor writes percentages: '30%',
43
- // '60%', `${pct}%` — see ui/blockeditor/imageBlock.ts + ImageBlockView).
44
- { type: 'image', category: 'core', nature: 'void', props: { assetId: 'string', src: 'string', alt: 'string', width: 'string' }, hint: '{assetId|src,alt?,width?:"60%"}' },
45
- { type: 'htmlArtifact', category: 'core', nature: 'void', props: { assetId: 'string', name: 'string', height: 'number' }, hint: 'sandboxed HTML document {assetId,name?,height?}' },
44
+ { type: 'image', category: 'core', nature: 'void', props: { assetId: 'string', src: 'string', alt: 'string', caption: 'string', width: 'string' }, hint: '{assetId|src,alt?,caption?,width?} — width is a CSS length such as "60%"' },
45
+ { type: 'htmlArtifact', category: 'core', nature: 'void', props: { assetId: 'string', title: 'string', height: 'number' }, hint: 'sandboxed HTML document {assetId,title?,height?} — height is CSS px' },
46
46
  // ── Core containers (children hold ordinary blocks) ────────────────────────
47
47
  { type: 'columns', category: 'core', nature: 'container', hint: 'side-by-side layout → column children (spans sum to 12)' },
48
48
  { type: 'column', category: 'core', nature: 'container', parent: 'columns', props: { span: 'number' }, hint: '{span:1-12}' },
@@ -67,7 +67,7 @@ const CATALOGUE_LITERAL = [
67
67
  { type: 'choicecards', category: 'kit', nature: 'void', kitValue: true, props: { name: 'string', label: 'string', opts: 'array', multi: 'boolean' }, hint: '{name,label?,value,opts:[{label,value,icon?}],multi?}' },
68
68
  { type: 'searchselect', category: 'kit', nature: 'void', kitValue: true, props: { name: 'string', label: 'string', opts: 'array', multi: 'boolean' }, hint: '{name,label?,value,opts,multi?}' },
69
69
  { type: 'tagfield', category: 'kit', nature: 'void', kitValue: true, props: { name: 'string', label: 'string', selected: 'array', freeEntry: 'boolean' }, hint: '{name,label?,selected:[],freeEntry?}' },
70
- { type: 'location', category: 'kit', nature: 'void', kitValue: true, props: { name: 'string', label: 'string' }, hint: '{name,label?}' },
70
+ { type: 'location', category: 'kit', nature: 'void', kitValue: true, props: { name: 'string', label: 'string', lat: 'number', lng: 'number', labeltext: 'string' }, hint: '{name,label?,lat?,lng?,labeltext?}' },
71
71
  // ── Kit actions + reactive display (consume the scope via `source`) ────────
72
72
  { type: 'actionbutton', category: 'kit', nature: 'void', props: { btnlabel: 'string', action: 'string', target: 'string', amount: 'number', url: 'string' }, hint: '{btnlabel,action:"increment"|"set"|"toggle"|"link",target?,amount?,url?}' },
73
73
  { type: 'kitchart', category: 'kit', nature: 'void', props: { kind: 'string', title: 'string', labels: 'string', source: 'string' }, hint: '{kind:"line"|"area"|"bar"|"pie"|"donut"|"scatter"|"funnel",title?,labels?,source}' },
@@ -88,14 +88,15 @@ const byType = new Map(BLOCK_TYPE_CATALOGUE.map((e) => [e.type, e]));
88
88
  export const blockTypeInfo = (type) => byType.get(type);
89
89
  /** Every catalogued (core + kit) type id. */
90
90
  export const KNOWN_BLOCK_TYPE_IDS = new Set(byType.keys());
91
+ /** Every catalogue type that publishes a named value into the reactive kit scope.
92
+ * `progressbar` / `actionbutton` are deliberately not inputs: display/action blocks read scope but never publish. */
93
+ export const KIT_VALUE_BLOCK_TYPES = new Set(BLOCK_TYPE_CATALOGUE.filter((entry) => entry.kitValue === true).map((entry) => entry.type));
91
94
  /** Core types whose `children` hold ordinary blocks. */
92
95
  export const CONTAINER_BLOCK_TYPES = new Set(BLOCK_TYPE_CATALOGUE.filter((e) => e.nature === 'container').map((e) => e.type));
93
96
  /** Core types that carry editable rich text. */
94
97
  export const TEXT_BLOCK_TYPES = new Set(BLOCK_TYPE_CATALOGUE.filter((e) => e.nature === 'text').map((e) => e.type));
95
98
  /** Child-only types → the one container each must sit directly inside. */
96
99
  export const CHILD_ONLY_PARENT = Object.fromEntries(BLOCK_TYPE_CATALOGUE.filter((e) => e.parent).map((e) => [e.type, e.parent]));
97
- /** Props every block accepts regardless of type (block chrome, not content). */
98
- const COMMON_PROPS = { bg: 'string' };
99
100
  // ── Plugin block types ─────────────────────────────────────────────────────────
100
101
  /**
101
102
  * Whether `type` is plugin-NAMESPACED: `<pluginId>/<blockType>` (plugins/api.ts
@@ -257,63 +258,40 @@ function raggedTableError(rows, path) {
257
258
  * and plugin/unknown types pass entirely. Returns a message, or null.
258
259
  */
259
260
  export function invalidBlockProps(type, props) {
260
- const info = byType.get(type);
261
- if (!info)
261
+ const schema = BLOCK_PROP_SCHEMAS[type];
262
+ if (!schema)
263
+ return null; // plugin props belong to their plugin
264
+ const parsed = schema.safeParse(props);
265
+ if (parsed.success)
262
266
  return null;
263
- const declared = { ...COMMON_PROPS, ...info.props };
264
- for (const [key, value] of Object.entries(props)) {
265
- // Own-property gate: a prop named after an Object.prototype member
266
- // (`toString`, `constructor`, …) must read as UNDECLARED, not as the
267
- // inherited function. (hasOwnProperty.call — the SDK targets pre-ES2022.)
268
- const expect = Object.prototype.hasOwnProperty.call(declared, key) ? declared[key] : undefined;
269
- if (!expect || value === null || value === undefined)
270
- continue;
271
- const actual = Array.isArray(value) ? 'array' : typeof value;
272
- if (actual !== expect) {
273
- return `Prop "${key}" of a "${type}" block must be ${expect === 'array' ? 'an array' : `a ${expect}`} — got ${actual} (${clipJson(value)}).`;
274
- }
275
- }
276
- return null;
267
+ const issue = parsed.error.issues[0];
268
+ const prop = issue.path.length ? String(issue.path[0]) : Object.keys(props)[0] ?? '(props)';
269
+ return `Invalid prop "${prop}" of a "${type}" block: ${issue.message} (got ${clipJson(props[prop])}).`;
277
270
  }
278
271
  const clipJson = (v) => {
279
272
  const s = JSON.stringify(v) ?? String(v);
280
273
  return s.length > 40 ? `${s.slice(0, 40)}…` : s;
281
274
  };
282
- /** One `list_block_types` line for a catalogue entry. */
283
- function entryLine(e) {
284
- const bits = [
285
- `- ${e.type} (${e.category}, ${e.nature})`,
286
- e.nature === 'container' ? `children: yes${CHILD_ONLY_PARENT[e.type] ? ` — only inside "${CHILD_ONLY_PARENT[e.type]}"` : ''}` : CHILD_ONLY_PARENT[e.type] ? `only inside "${CHILD_ONLY_PARENT[e.type]}"` : '',
287
- e.kitValue ? 'publishes a kit value' : '',
288
- e.props ? `props: ${Object.entries(e.props).map(([k, t]) => `${k}:${t}`).join(', ')}` : '',
289
- e.hint ? `— ${e.hint}` : '',
290
- ];
291
- return bits.filter(Boolean).join(' · ');
292
- }
293
275
  /**
294
276
  * The full catalogue as `list_block_types` text: every core + kit entry, then
295
277
  * one `plugin` entry per block each installed plugin DECLARES in its manifest
296
278
  * (`PluginManifest.blocks`). Pass the installed plugins where a listing is
297
279
  * available; omit it and the plugin section says so instead of guessing.
298
280
  */
299
- export function blockCatalogueText(plugins) {
300
- const lines = [
301
- 'Block types (type · category, nature · children/kit-value · declared props):',
302
- ...BLOCK_TYPE_CATALOGUE.map((e) => entryLine(e)),
303
- ];
304
- if (!plugins) {
305
- lines.push('Plugin blocks: installed-plugin listing unavailable — plugin types (`<pluginId>/<type>`) are accepted as-is.');
306
- return lines.join('\n');
307
- }
308
- const pluginLines = [];
309
- for (const p of plugins) {
310
- for (const b of p.manifest.blocks ?? []) {
311
- pluginLines.push(`- ${p.manifest.id}/${b.type} (plugin: ${p.manifest.name ?? p.manifest.id}${p.enabled === false ? ', disabled' : ''}, void)${b.description ? ` — ${b.description}` : ''}`);
312
- }
313
- }
314
- lines.push(pluginLines.length ? 'Installed plugin blocks:' : 'Installed plugin blocks: none.');
315
- lines.push(...pluginLines);
316
- return lines.join('\n');
281
+ export function blockCatalogueText(plugins, types) {
282
+ const wanted = types ? new Set(types) : null;
283
+ const blocks = BLOCK_TYPE_CATALOGUE.filter((e) => !wanted || wanted.has(e.type)).map((e) => ({
284
+ type: e.type, category: e.category, nature: e.nature,
285
+ ...(e.parent ? { parent: e.parent } : {}), ...(e.kitValue ? { kitValue: true } : {}),
286
+ description: e.hint ?? `${e.type} ${e.nature} block.`,
287
+ propsSchema: BLOCK_PROP_JSON_SCHEMAS[e.type],
288
+ }));
289
+ const pluginBlocks = plugins?.flatMap((p) => (p.manifest.blocks ?? []).map((b) => ({
290
+ type: `${p.manifest.id}/${b.type}`, category: 'plugin', nature: 'void',
291
+ description: b.description ?? `${p.manifest.name ?? p.manifest.id} plugin block.`,
292
+ propsSchema: { type: 'object', properties: {}, additionalProperties: true }, enabled: p.enabled !== false,
293
+ })).filter((b) => !wanted || wanted.has(b.type))) ?? null;
294
+ return JSON.stringify({ blocks, pluginBlocks, pluginListingAvailable: plugins !== undefined });
317
295
  }
318
296
  /**
319
297
  * The `add_blocks` tool description, generated from the catalogue so the type
@@ -1 +1 @@
1
- {"version":3,"file":"blockCatalogue.js","sourceRoot":"","sources":["../src/blockCatalogue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blockCatalogue.js","sourceRoot":"","sources":["../src/blockCatalogue.ts"],"names":[],"mappings":"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"}