@wootsup/yt-builder-mcp 1.7.2 → 1.9.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.
Files changed (99) hide show
  1. package/README.md +8 -8
  2. package/dist/client.d.ts +6 -0
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +38 -2
  5. package/dist/client.js.map +1 -1
  6. package/dist/gateway/advanced-tool/domains.d.ts +14 -2
  7. package/dist/gateway/advanced-tool/domains.d.ts.map +1 -1
  8. package/dist/gateway/advanced-tool/domains.js +20 -5
  9. package/dist/gateway/advanced-tool/domains.js.map +1 -1
  10. package/dist/gateway/essentials.d.ts +1 -1
  11. package/dist/gateway/essentials.d.ts.map +1 -1
  12. package/dist/gateway/essentials.js +27 -0
  13. package/dist/gateway/essentials.js.map +1 -1
  14. package/dist/index.js +1 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/platform/detect.d.ts +1 -1
  17. package/dist/platform/detect.js +1 -1
  18. package/dist/platform/index.d.ts +1 -1
  19. package/dist/platform/index.js +1 -1
  20. package/dist/proxy/mode.d.ts.map +1 -1
  21. package/dist/proxy/mode.js +25 -3
  22. package/dist/proxy/mode.js.map +1 -1
  23. package/dist/setup-cli.d.ts +8 -0
  24. package/dist/setup-cli.d.ts.map +1 -1
  25. package/dist/setup-cli.js +58 -6
  26. package/dist/setup-cli.js.map +1 -1
  27. package/dist/setup-npx-spec.d.ts +1 -1
  28. package/dist/setup-npx-spec.js +1 -1
  29. package/dist/setup-prompts.d.ts +11 -0
  30. package/dist/setup-prompts.d.ts.map +1 -1
  31. package/dist/setup-prompts.js +28 -0
  32. package/dist/setup-prompts.js.map +1 -1
  33. package/dist/setup-wizard-defaults.d.ts.map +1 -1
  34. package/dist/setup-wizard-defaults.js +40 -9
  35. package/dist/setup-wizard-defaults.js.map +1 -1
  36. package/dist/setup-wizard-handshake.d.ts +5 -4
  37. package/dist/setup-wizard-handshake.d.ts.map +1 -1
  38. package/dist/setup-wizard-handshake.js +28 -24
  39. package/dist/setup-wizard-handshake.js.map +1 -1
  40. package/dist/setup-wizard-types.d.ts +48 -9
  41. package/dist/setup-wizard-types.d.ts.map +1 -1
  42. package/dist/setup-wizard.d.ts.map +1 -1
  43. package/dist/setup-wizard.js +62 -10
  44. package/dist/setup-wizard.js.map +1 -1
  45. package/dist/sites/env-bridge.d.ts +19 -0
  46. package/dist/sites/env-bridge.d.ts.map +1 -1
  47. package/dist/sites/env-bridge.js +29 -15
  48. package/dist/sites/env-bridge.js.map +1 -1
  49. package/dist/sites/store.d.ts +1 -1
  50. package/dist/sites/store.js +1 -1
  51. package/dist/skill-loader.d.ts +2 -2
  52. package/dist/skill-loader.js +2 -2
  53. package/dist/tools/elements/builders.d.ts.map +1 -1
  54. package/dist/tools/elements/builders.js +21 -2
  55. package/dist/tools/elements/builders.js.map +1 -1
  56. package/dist/tools/elements/handlers-write.d.ts +2 -0
  57. package/dist/tools/elements/handlers-write.d.ts.map +1 -1
  58. package/dist/tools/elements/handlers-write.js +16 -4
  59. package/dist/tools/elements/handlers-write.js.map +1 -1
  60. package/dist/tools/elements/handlers.d.ts +1 -0
  61. package/dist/tools/elements/handlers.d.ts.map +1 -1
  62. package/dist/tools/elements/handlers.js +14 -0
  63. package/dist/tools/elements/handlers.js.map +1 -1
  64. package/dist/tools/format/pages-format.d.ts.map +1 -1
  65. package/dist/tools/format/pages-format.js +21 -0
  66. package/dist/tools/format/pages-format.js.map +1 -1
  67. package/dist/tools/index.d.ts.map +1 -1
  68. package/dist/tools/index.js +8 -0
  69. package/dist/tools/index.js.map +1 -1
  70. package/dist/tools/library.d.ts +279 -0
  71. package/dist/tools/library.d.ts.map +1 -0
  72. package/dist/tools/library.js +1060 -0
  73. package/dist/tools/library.js.map +1 -0
  74. package/dist/tools/local-content/builders.d.ts +19 -0
  75. package/dist/tools/local-content/builders.d.ts.map +1 -0
  76. package/dist/tools/local-content/builders.js +127 -0
  77. package/dist/tools/local-content/builders.js.map +1 -0
  78. package/dist/tools/local-content/handlers.d.ts +54 -0
  79. package/dist/tools/local-content/handlers.d.ts.map +1 -0
  80. package/dist/tools/local-content/handlers.js +287 -0
  81. package/dist/tools/local-content/handlers.js.map +1 -0
  82. package/dist/tools/local-content/index.d.ts +17 -0
  83. package/dist/tools/local-content/index.d.ts.map +1 -0
  84. package/dist/tools/local-content/index.js +16 -0
  85. package/dist/tools/local-content/index.js.map +1 -0
  86. package/dist/tools/local-content/schemas.d.ts +82 -0
  87. package/dist/tools/local-content/schemas.d.ts.map +1 -0
  88. package/dist/tools/local-content/schemas.js +89 -0
  89. package/dist/tools/local-content/schemas.js.map +1 -0
  90. package/dist/tools/pages/builders.d.ts.map +1 -1
  91. package/dist/tools/pages/builders.js +16 -10
  92. package/dist/tools/pages/builders.js.map +1 -1
  93. package/dist/tools/sources/handlers-bind.d.ts +2 -0
  94. package/dist/tools/sources/handlers-bind.d.ts.map +1 -1
  95. package/dist/tools/sources/handlers-bind.js +18 -0
  96. package/dist/tools/sources/handlers-bind.js.map +1 -1
  97. package/manifest.json +4 -3
  98. package/package.json +4 -3
  99. package/skills/yt-builder-mcp/SKILL.md +998 -78
@@ -0,0 +1,279 @@
1
+ /**
2
+ * Layout Library tools — browse + fetch + insert + save the YOOtheme Pro
3
+ * Library catalog (layouts / element presets), PLUS the Image Sourcing pair
4
+ * (Task D1) that fills layout image slots with real photography. Task 2
5
+ * (Layout Library, Spec #2) + Task 3 (Spec #3) + Task 6 (Spec #6) + Task 7
6
+ * (Spec #7) + Task D1 (Image Sourcing).
7
+ *
8
+ * yootheme_builder_library_browse
9
+ * → paginated, taxonomy-filtered catalog rows (tableResult — Wave G.2).
10
+ * yootheme_builder_library_get
11
+ * → a SINGLE item's full tree + derived section list (the natural next
12
+ * call after library_browse — id comes straight off a browse row).
13
+ * yootheme_builder_library_insert
14
+ * → compose + persist a browsed/fetched item onto a page/template
15
+ * through the REAL hardened write chain.
16
+ * yootheme_builder_library_save_as
17
+ * → the REVERSE direction: save a page/subtree INTO "My Layouts".
18
+ * yootheme_builder_image_search
19
+ * → search Unsplash / Pexels (real photography) or YOOtheme Pro Images
20
+ * (curated decorative/background assets) — forwards to the SAME
21
+ * `?key=<theme apikey>` proxy auth `library_browse` uses (Task A0-C1,
22
+ * PHP `ImageSearchService`). Returns candidate rows; `total:0` means
23
+ * no Library API key configured, mirroring browse's empty-catalog hint.
24
+ * yootheme_builder_image_import
25
+ * → sideload ONE chosen photo (typically a `full_url` from
26
+ * image_search) into the site's own Media Library. Returns
27
+ * `{imported:true, local_url}` to bind via element_update_settings,
28
+ * or `{imported:false, reason}` on a caught failure (never a 500).
29
+ *
30
+ * browse/get/image_search are read-only forwards, exactly like the sibling
31
+ * L1 read tools (sources_list / template_summary / pages_list): resolve the
32
+ * site via the pool, GET the plugin REST endpoint, project into a table +
33
+ * strict structuredContent, stamp the result-level `_meta` (site_id/
34
+ * site_url/platform/resolved_via) via withSiteMeta. insert/save_as/
35
+ * image_import are WRITE forwards (withWriteSiteRetry — pre-flights a KNOWN
36
+ * read-only token before any body build, mirroring every other write tool's
37
+ * U2 pattern).
38
+ *
39
+ * ── Tiering (Task 7, deliberate) ─────────────────────────────────────────
40
+ * `library_save_as` is registered as an ADVANCED tool — it is NOT added to
41
+ * `ESSENTIAL_TOOLS` (essentials.ts) and does NOT appear as a first-class
42
+ * `tools/list` entry. `tools/list` sits close to the 28000B token-baseline
43
+ * ceiling (see `tests/perf/token-baseline.test.ts`); a 4th Layout-Library L1
44
+ * tool would risk busting it. `CapturingServer` (gateway/capturing-server.ts)
45
+ * automatically captures ANY registered tool whose name is absent from both
46
+ * `ESSENTIAL_TOOLS` and `DIRECT_TOP_LEVEL_TOOLS` into the L2 advanced
47
+ * registry — reachable via `yootheme_builder_advanced({tool, arguments})` —
48
+ * so simply NOT listing this name in essentials.ts is the entire tiering
49
+ * decision (mirrors how `yootheme_builder_clean_implode_directives` /
50
+ * `yootheme_builder_element_unbind_source` are advanced-only today). The
51
+ * name falls through the gateway's domain taxonomy (domains.ts) to "misc"
52
+ * (no `library` domain exists there) — intentional, NOT a bug (see
53
+ * `domain-order.test.ts`'s own pinned "misc" fallthrough cases): it keeps the
54
+ * gateway's own tools/list-visible description text from growing at all,
55
+ * while `{tool: "yootheme_builder_library_save_as"}` discovery and
56
+ * `{tool, arguments}` execution both remain fully reachable (the gateway
57
+ * dispatches by an exact Map lookup, independent of the domain-grouped
58
+ * DESCRIPTION text — see `gateway/advanced-tool/execute.ts`).
59
+ *
60
+ * @license MIT
61
+ */
62
+ import { z } from 'zod';
63
+ import type { RestClient } from '../client.js';
64
+ import type { ClientPool } from '../sites/client-pool.js';
65
+ import { type AnyToolDefinition, type ToolResult } from './tool-builder.js';
66
+ /**
67
+ * Fixed section-purpose enum (Task 8, Section Corpus Phase 1) — mirrors the
68
+ * PHP-side `SectionPurposeClassifier` / `SectionIndexEntry` purpose values
69
+ * byte-for-byte (design spec §A, Global Constraints). Only applies when
70
+ * `kind="section"`. Declared here (ahead of `LIBRARY_ITEM_SCHEMA`, which
71
+ * consumes it for the browse row's `purpose` field) rather than further
72
+ * down where the original Task 8 pass left it, since Task 8b (this file)
73
+ * now needs it at both the item-schema AND the browse-filter-schema sites.
74
+ */
75
+ export declare const SECTION_PURPOSE_VALUES: readonly ["hero", "features", "stats", "team", "testimonial", "cta", "gallery", "pricing", "faq", "contact", "logos", "content"];
76
+ export type SectionPurpose = (typeof SECTION_PURPOSE_VALUES)[number];
77
+ /**
78
+ * Track 1 Task 7 (WootsUp AI Layouts) — the `source` axis for
79
+ * browse/get/insert: `"catalog"` (the remote YOOtheme Pro Library, the
80
+ * DEFAULT) or `"ai"` (the plugin's OWN isolated "WootsUp AI Layouts" store,
81
+ * saved via library_save_as, no apikey). Mirrors the PHP-side
82
+ * `LibrarySourceRegistry` keys byte-for-byte.
83
+ */
84
+ declare const LIBRARY_SOURCE_VALUES: readonly ["catalog", "ai"];
85
+ type LibrarySource = (typeof LIBRARY_SOURCE_VALUES)[number];
86
+ /**
87
+ * Track 1 Task 7 (WootsUp AI Layouts) — the `destination` axis for
88
+ * library_save_as: `"ai"` (save INTO the isolated AI store, the DEFAULT) or
89
+ * `"native"` (the escape hatch — save into YOOtheme's native "My Layouts").
90
+ */
91
+ declare const SAVE_DESTINATION_VALUES: readonly ["ai", "native"];
92
+ type SaveDestination = (typeof SAVE_DESTINATION_VALUES)[number];
93
+ export declare const LIBRARY_BROWSE_OUTPUT_SCHEMA: z.ZodObject<{
94
+ items: z.ZodArray<z.ZodObject<{
95
+ id: z.ZodString;
96
+ name: z.ZodString;
97
+ kind: z.ZodEnum<{
98
+ element: "element";
99
+ layout: "layout";
100
+ section: "section";
101
+ }>;
102
+ meta: z.ZodObject<{
103
+ topic: z.ZodNullable<z.ZodString>;
104
+ type: z.ZodNullable<z.ZodString>;
105
+ role: z.ZodNullable<z.ZodString>;
106
+ website: z.ZodNullable<z.ZodString>;
107
+ image: z.ZodNullable<z.ZodString>;
108
+ }, z.core.$strip>;
109
+ thumbnail_url: z.ZodNullable<z.ZodString>;
110
+ layout_id: z.ZodOptional<z.ZodString>;
111
+ section_index: z.ZodOptional<z.ZodNumber>;
112
+ purpose: z.ZodOptional<z.ZodEnum<{
113
+ content: "content";
114
+ gallery: "gallery";
115
+ hero: "hero";
116
+ features: "features";
117
+ stats: "stats";
118
+ team: "team";
119
+ testimonial: "testimonial";
120
+ cta: "cta";
121
+ pricing: "pricing";
122
+ faq: "faq";
123
+ contact: "contact";
124
+ logos: "logos";
125
+ }>>;
126
+ element_signature: z.ZodOptional<z.ZodString>;
127
+ visual_effects: z.ZodOptional<z.ZodArray<z.ZodString>>;
128
+ topic: z.ZodOptional<z.ZodNullable<z.ZodString>>;
129
+ type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
130
+ website: z.ZodOptional<z.ZodNullable<z.ZodString>>;
131
+ has_images: z.ZodOptional<z.ZodBoolean>;
132
+ image_count: z.ZodOptional<z.ZodNumber>;
133
+ element_count: z.ZodOptional<z.ZodNumber>;
134
+ }, z.core.$strip>>;
135
+ total: z.ZodNumber;
136
+ next_cursor: z.ZodNullable<z.ZodString>;
137
+ }, z.core.$strip>;
138
+ export declare const LIBRARY_GET_OUTPUT_SCHEMA: z.ZodObject<{
139
+ id: z.ZodString;
140
+ kind: z.ZodEnum<{
141
+ element: "element";
142
+ layout: "layout";
143
+ section: "section";
144
+ }>;
145
+ name: z.ZodString;
146
+ version: z.ZodString;
147
+ tree: z.ZodRecord<z.ZodString, z.ZodUnknown>;
148
+ sections: z.ZodArray<z.ZodObject<{
149
+ index: z.ZodNumber;
150
+ name: z.ZodString;
151
+ path: z.ZodString;
152
+ element_count: z.ZodNumber;
153
+ }, z.core.$strip>>;
154
+ images_manifest_count: z.ZodNumber;
155
+ }, z.core.$strip>;
156
+ export declare const LIBRARY_INSERT_OUTPUT_SCHEMA: z.ZodObject<{
157
+ template_id: z.ZodString;
158
+ inserted_path: z.ZodString;
159
+ element_count: z.ZodNumber;
160
+ images_mode: z.ZodEnum<{
161
+ placeholder: "placeholder";
162
+ curated: "curated";
163
+ }>;
164
+ images_resolved: z.ZodObject<{
165
+ downloaded: z.ZodNumber;
166
+ placeholders: z.ZodNumber;
167
+ }, z.core.$strip>;
168
+ new_etag: z.ZodString;
169
+ frontend_url: z.ZodNullable<z.ZodString>;
170
+ warnings: z.ZodOptional<z.ZodArray<z.ZodObject<{
171
+ field: z.ZodString;
172
+ code: z.ZodString;
173
+ message: z.ZodString;
174
+ }, z.core.$strip>>>;
175
+ }, z.core.$strip>;
176
+ export interface LibraryHandlerDeps {
177
+ readonly client: RestClient;
178
+ }
179
+ export interface LibraryBrowseArgs {
180
+ kind?: 'layout' | 'element' | 'section';
181
+ source?: LibrarySource;
182
+ topic?: string;
183
+ type?: string;
184
+ role?: string;
185
+ website?: string;
186
+ element_type?: string;
187
+ purpose?: SectionPurpose;
188
+ has_effects?: boolean;
189
+ query?: string;
190
+ limit?: number;
191
+ cursor?: string;
192
+ }
193
+ export declare function handleLibraryBrowse({ client }: LibraryHandlerDeps, { kind, source, topic, type, role, website, element_type, purpose, has_effects, query, limit, cursor }: LibraryBrowseArgs): Promise<ToolResult>;
194
+ export interface LibraryGetArgs {
195
+ id: string;
196
+ kind?: 'layout' | 'element' | 'section';
197
+ source?: LibrarySource;
198
+ include_thumbnail?: boolean;
199
+ }
200
+ export declare function handleLibraryGet({ client }: LibraryHandlerDeps, { id, kind, source, include_thumbnail }: LibraryGetArgs): Promise<ToolResult>;
201
+ export type LibraryInsertTarget = {
202
+ new_page: {
203
+ title: string;
204
+ status?: string;
205
+ };
206
+ } | {
207
+ sublayout: {
208
+ template_id: string;
209
+ element_path: string;
210
+ };
211
+ } | {
212
+ template_id: string;
213
+ element_path?: string;
214
+ };
215
+ export interface LibraryInsertArgs {
216
+ id: string;
217
+ kind?: 'layout' | 'element' | 'section';
218
+ source?: LibrarySource;
219
+ target: LibraryInsertTarget;
220
+ section_index?: number;
221
+ images?: 'placeholder' | 'curated';
222
+ etag?: string;
223
+ }
224
+ export declare function handleLibraryInsert({ client }: LibraryHandlerDeps, { id, kind, source, target, section_index, images, etag }: LibraryInsertArgs): Promise<ToolResult>;
225
+ export declare const LIBRARY_SAVE_AS_OUTPUT_SCHEMA: z.ZodObject<{
226
+ library_id: z.ZodString;
227
+ name: z.ZodString;
228
+ storage: z.ZodString;
229
+ invalid_source_possible: z.ZodBoolean;
230
+ }, z.core.$strip>;
231
+ export interface LibrarySaveAsArgs {
232
+ source: {
233
+ template_id: string;
234
+ element_path?: string;
235
+ };
236
+ name: string;
237
+ destination?: SaveDestination;
238
+ }
239
+ export declare function handleLibrarySaveAs({ client }: LibraryHandlerDeps, { source, name, destination }: LibrarySaveAsArgs): Promise<ToolResult>;
240
+ declare const IMAGE_SOURCE_VALUES: readonly ["unsplash", "pexels", "proimages"];
241
+ type ImageSource = (typeof IMAGE_SOURCE_VALUES)[number];
242
+ export declare const IMAGE_SEARCH_OUTPUT_SCHEMA: z.ZodObject<{
243
+ items: z.ZodArray<z.ZodObject<{
244
+ id: z.ZodString;
245
+ source: z.ZodString;
246
+ thumb_url: z.ZodString;
247
+ full_url: z.ZodString;
248
+ width: z.ZodNumber;
249
+ height: z.ZodNumber;
250
+ alt: z.ZodString;
251
+ author: z.ZodString;
252
+ author_url: z.ZodString;
253
+ orientation: z.ZodString;
254
+ }, z.core.$strip>>;
255
+ total: z.ZodNumber;
256
+ source: z.ZodString;
257
+ query: z.ZodString;
258
+ hint: z.ZodOptional<z.ZodString>;
259
+ }, z.core.$strip>;
260
+ export declare const IMAGE_IMPORT_OUTPUT_SCHEMA: z.ZodObject<{
261
+ imported: z.ZodBoolean;
262
+ local_url: z.ZodOptional<z.ZodString>;
263
+ reason: z.ZodOptional<z.ZodString>;
264
+ }, z.core.$strip>;
265
+ export interface ImageSearchArgs {
266
+ source?: ImageSource;
267
+ query: string;
268
+ per_page?: number;
269
+ orientation?: string;
270
+ color?: string;
271
+ }
272
+ export declare function handleImageSearch({ client }: LibraryHandlerDeps, { source, query, per_page, orientation, color }: ImageSearchArgs): Promise<ToolResult>;
273
+ export interface ImageImportArgs {
274
+ url: string;
275
+ }
276
+ export declare function handleImageImport({ client }: LibraryHandlerDeps, { url }: ImageImportArgs): Promise<ToolResult>;
277
+ export declare function buildLibraryTools(pool: ClientPool): readonly AnyToolDefinition[];
278
+ export {};
279
+ //# sourceMappingURL=library.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/tools/library.ts"],"names":[],"mappings":"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"}