@wootsup/yt-builder-mcp 1.2.0 → 1.3.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 +15 -11
- package/dist/catalog/build-catalog.d.ts +63 -0
- package/dist/catalog/build-catalog.d.ts.map +1 -0
- package/dist/catalog/build-catalog.js +166 -0
- package/dist/catalog/build-catalog.js.map +1 -0
- package/dist/gateway/advanced-read-tool.d.ts +37 -0
- package/dist/gateway/advanced-read-tool.d.ts.map +1 -0
- package/dist/gateway/advanced-read-tool.js +156 -0
- package/dist/gateway/advanced-read-tool.js.map +1 -0
- package/dist/gateway/advanced-tool/domains.d.ts +18 -3
- package/dist/gateway/advanced-tool/domains.d.ts.map +1 -1
- package/dist/gateway/advanced-tool/domains.js +28 -9
- package/dist/gateway/advanced-tool/domains.js.map +1 -1
- package/dist/gateway/advanced-tool/register.d.ts.map +1 -1
- package/dist/gateway/advanced-tool/register.js +43 -11
- package/dist/gateway/advanced-tool/register.js.map +1 -1
- package/dist/gateway/essentials.d.ts +14 -4
- package/dist/gateway/essentials.d.ts.map +1 -1
- package/dist/gateway/essentials.js +41 -5
- package/dist/gateway/essentials.js.map +1 -1
- package/dist/gateway/test-support.d.ts +2 -2
- package/dist/gateway/test-support.js +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/install-skill.js +1 -1
- package/dist/proxy/bridge.d.ts +36 -0
- package/dist/proxy/bridge.d.ts.map +1 -0
- package/dist/proxy/bridge.js +129 -0
- package/dist/proxy/bridge.js.map +1 -0
- package/dist/proxy/mode.d.ts +10 -0
- package/dist/proxy/mode.d.ts.map +1 -0
- package/dist/proxy/mode.js +20 -0
- package/dist/proxy/mode.js.map +1 -0
- package/dist/server.d.ts +5 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +13 -3
- package/dist/server.js.map +1 -1
- package/dist/setup-wizard.d.ts.map +1 -1
- package/dist/setup-wizard.js +7 -0
- package/dist/setup-wizard.js.map +1 -1
- package/dist/sites/client-pool.d.ts.map +1 -1
- package/dist/sites/client-pool.js +21 -3
- package/dist/sites/client-pool.js.map +1 -1
- package/dist/sites/registry.d.ts +30 -0
- package/dist/sites/registry.d.ts.map +1 -1
- package/dist/sites/registry.js.map +1 -1
- package/dist/sites/store.d.ts +8 -1
- package/dist/sites/store.d.ts.map +1 -1
- package/dist/sites/store.js +17 -2
- package/dist/sites/store.js.map +1 -1
- package/dist/sites/tools/use-site.d.ts.map +1 -1
- package/dist/sites/tools/use-site.js +26 -6
- package/dist/sites/tools/use-site.js.map +1 -1
- package/dist/tools/bind-guidance.d.ts +80 -0
- package/dist/tools/bind-guidance.d.ts.map +1 -0
- package/dist/tools/bind-guidance.js +95 -0
- package/dist/tools/bind-guidance.js.map +1 -0
- package/dist/tools/elements/builders.d.ts.map +1 -1
- package/dist/tools/elements/builders.js +59 -11
- package/dist/tools/elements/builders.js.map +1 -1
- package/dist/tools/elements/handlers-write.d.ts +19 -2
- package/dist/tools/elements/handlers-write.d.ts.map +1 -1
- package/dist/tools/elements/handlers-write.js +179 -10
- package/dist/tools/elements/handlers-write.js.map +1 -1
- package/dist/tools/elements/handlers.d.ts +6 -1
- package/dist/tools/elements/handlers.d.ts.map +1 -1
- package/dist/tools/elements/handlers.js +74 -7
- package/dist/tools/elements/handlers.js.map +1 -1
- package/dist/tools/elements/layout-hierarchy-rules.d.ts +62 -0
- package/dist/tools/elements/layout-hierarchy-rules.d.ts.map +1 -0
- package/dist/tools/elements/layout-hierarchy-rules.js +154 -0
- package/dist/tools/elements/layout-hierarchy-rules.js.map +1 -0
- package/dist/tools/format/elements-format.d.ts +35 -0
- package/dist/tools/format/elements-format.d.ts.map +1 -1
- package/dist/tools/format/elements-format.js +124 -1
- package/dist/tools/format/elements-format.js.map +1 -1
- package/dist/tools/format/inspection-format.d.ts +18 -0
- package/dist/tools/format/inspection-format.d.ts.map +1 -1
- package/dist/tools/format/inspection-format.js +22 -1
- package/dist/tools/format/inspection-format.js.map +1 -1
- package/dist/tools/format/pages-format.d.ts.map +1 -1
- package/dist/tools/format/pages-format.js +7 -0
- package/dist/tools/format/pages-format.js.map +1 -1
- package/dist/tools/format/sources-format.d.ts +8 -0
- package/dist/tools/format/sources-format.d.ts.map +1 -1
- package/dist/tools/format/sources-format.js +10 -0
- package/dist/tools/format/sources-format.js.map +1 -1
- package/dist/tools/health.d.ts.map +1 -1
- package/dist/tools/health.js +24 -0
- package/dist/tools/health.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/inspection.d.ts +24 -0
- package/dist/tools/inspection.d.ts.map +1 -1
- package/dist/tools/inspection.js +140 -41
- package/dist/tools/inspection.js.map +1 -1
- package/dist/tools/layout-flatten.d.ts +11 -8
- package/dist/tools/layout-flatten.d.ts.map +1 -1
- package/dist/tools/layout-flatten.js +17 -6
- package/dist/tools/layout-flatten.js.map +1 -1
- package/dist/tools/multi-items/builders.d.ts.map +1 -1
- package/dist/tools/multi-items/builders.js +11 -2
- package/dist/tools/multi-items/builders.js.map +1 -1
- package/dist/tools/multi-items/inspect-handler.d.ts +13 -0
- package/dist/tools/multi-items/inspect-handler.d.ts.map +1 -1
- package/dist/tools/multi-items/inspect-handler.js +147 -3
- package/dist/tools/multi-items/inspect-handler.js.map +1 -1
- package/dist/tools/pages/builders.d.ts.map +1 -1
- package/dist/tools/pages/builders.js +88 -25
- package/dist/tools/pages/builders.js.map +1 -1
- package/dist/tools/pages/handlers-read.d.ts +5 -1
- package/dist/tools/pages/handlers-read.d.ts.map +1 -1
- package/dist/tools/pages/handlers-read.js +192 -47
- package/dist/tools/pages/handlers-read.js.map +1 -1
- package/dist/tools/pages/handlers-write.d.ts +95 -1
- package/dist/tools/pages/handlers-write.d.ts.map +1 -1
- package/dist/tools/pages/handlers-write.js +137 -8
- package/dist/tools/pages/handlers-write.js.map +1 -1
- package/dist/tools/pages/index.d.ts +1 -1
- package/dist/tools/pages/index.d.ts.map +1 -1
- package/dist/tools/pages/index.js +1 -1
- package/dist/tools/pages/index.js.map +1 -1
- package/dist/tools/pages/schemas.d.ts +54 -0
- package/dist/tools/pages/schemas.d.ts.map +1 -1
- package/dist/tools/pages/schemas.js +199 -2
- package/dist/tools/pages/schemas.js.map +1 -1
- package/dist/tools/shared-schemas.d.ts.map +1 -1
- package/dist/tools/shared-schemas.js +15 -13
- package/dist/tools/shared-schemas.js.map +1 -1
- package/dist/tools/sources/builders.d.ts.map +1 -1
- package/dist/tools/sources/builders.js +64 -6
- package/dist/tools/sources/builders.js.map +1 -1
- package/dist/tools/sources/handlers-bind.d.ts +13 -1
- package/dist/tools/sources/handlers-bind.d.ts.map +1 -1
- package/dist/tools/sources/handlers-bind.js +163 -1
- package/dist/tools/sources/handlers-bind.js.map +1 -1
- package/dist/tools/sources/handlers.d.ts +3 -0
- package/dist/tools/sources/handlers.d.ts.map +1 -1
- package/dist/tools/sources/handlers.js +43 -6
- package/dist/tools/sources/handlers.js.map +1 -1
- package/dist/tools/sparse-fields.d.ts +23 -0
- package/dist/tools/sparse-fields.d.ts.map +1 -1
- package/dist/tools/sparse-fields.js +29 -0
- package/dist/tools/sparse-fields.js.map +1 -1
- package/dist/tools/sublayout/builders.d.ts +23 -0
- package/dist/tools/sublayout/builders.d.ts.map +1 -0
- package/dist/tools/sublayout/builders.js +54 -0
- package/dist/tools/sublayout/builders.js.map +1 -0
- package/dist/tools/sublayout/index.d.ts +13 -0
- package/dist/tools/sublayout/index.d.ts.map +1 -0
- package/dist/tools/sublayout/index.js +13 -0
- package/dist/tools/sublayout/index.js.map +1 -0
- package/dist/tools/sublayout/inspect-sublayout-handler.d.ts +95 -0
- package/dist/tools/sublayout/inspect-sublayout-handler.d.ts.map +1 -0
- package/dist/tools/sublayout/inspect-sublayout-handler.js +181 -0
- package/dist/tools/sublayout/inspect-sublayout-handler.js.map +1 -0
- package/dist/tools/tool-builder/results.d.ts +31 -0
- package/dist/tools/tool-builder/results.d.ts.map +1 -1
- package/dist/tools/tool-builder/results.js +95 -4
- package/dist/tools/tool-builder/results.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +4 -2
- package/skills/yt-builder-mcp/SKILL.md +146 -81
|
@@ -30,7 +30,38 @@ export const INSPECT_MULTI_ITEMS_OUTPUT_SCHEMA = z.object({
|
|
|
30
30
|
container_type: z.string().nullable(),
|
|
31
31
|
item_type: z.string().nullable(),
|
|
32
32
|
current_binding_level: z.enum(['none', 'container', 'item']),
|
|
33
|
+
// C7 (2026-06-10) — binding level of the container's first `*_item`
|
|
34
|
+
// child. Optional so a pre-C7 backend's report still validates.
|
|
35
|
+
item_child_binding_level: z.enum(['none', 'item']).optional(),
|
|
36
|
+
// C7 — single honest "is anything bound (here or on the item child)"
|
|
37
|
+
// signal. Optional for back-compat with pre-C7 reports.
|
|
38
|
+
is_bound: z.boolean().optional(),
|
|
33
39
|
has_implode_directives: z.boolean(),
|
|
40
|
+
// C7 — bound source name + live-registry existence cross-check.
|
|
41
|
+
// `bound_source_exists` is null when the registry is not wired.
|
|
42
|
+
bound_source_name: z.string().nullable().optional(),
|
|
43
|
+
bound_source_exists: z.boolean().nullable().optional(),
|
|
44
|
+
source_missing_warning: z.string().optional(),
|
|
45
|
+
// F143 — true when a bound map_item/map carries no resolved
|
|
46
|
+
// `location` leaf (the map renders 0 markers). Optional so reports
|
|
47
|
+
// for non-map elements (and pre-F143 backends) still validate.
|
|
48
|
+
map_location_missing: z.boolean().optional(),
|
|
49
|
+
// F174 — number of field mappings on the bound node (0 when unbound /
|
|
50
|
+
// mapping-less). Optional so a pre-F174 backend's report still validates.
|
|
51
|
+
field_mapping_count: z.number().int().nonnegative().optional(),
|
|
52
|
+
// F174 — true when the element IS bound but carries 0 field mappings
|
|
53
|
+
// (the N clones render only the template's static placeholder text).
|
|
54
|
+
// Optional for back-compat with pre-F174 reports.
|
|
55
|
+
zero_field_mappings: z.boolean().optional(),
|
|
56
|
+
// F189 — true when a `…List` source sits on a LEAF renderer (grid_item /
|
|
57
|
+
// any non-container) with non-empty children (the children never paint).
|
|
58
|
+
// Optional so reports for other shapes + pre-F189 backends still validate.
|
|
59
|
+
iterator_is_leaf_renderer: z.boolean().optional(),
|
|
60
|
+
// F39 (2026-06-10) — emitted when a map/map_item is bound without a
|
|
61
|
+
// `location` field mapping (renders 0 markers). Optional so non-map
|
|
62
|
+
// reports still validate. Companion human-readable signal to the
|
|
63
|
+
// structured `map_location_missing` boolean above.
|
|
64
|
+
map_location_warning: z.string().optional(),
|
|
34
65
|
warning: z.string().optional(),
|
|
35
66
|
recommended_fix: z.string().optional(),
|
|
36
67
|
}),
|
|
@@ -46,18 +77,131 @@ export const INSPECT_MULTI_ITEMS_OUTPUT_SCHEMA = z.object({
|
|
|
46
77
|
.optional(),
|
|
47
78
|
});
|
|
48
79
|
/**
|
|
49
|
-
* Classify the report into an advisory/blocking hint.
|
|
50
|
-
*
|
|
51
|
-
*
|
|
80
|
+
* Classify the report into an advisory/blocking hint.
|
|
81
|
+
*
|
|
82
|
+
* C7 (2026-06-10) — the verdict now reflects what is ACTUALLY bound, not
|
|
83
|
+
* just the container-node's own binding level. Three structural bugs the
|
|
84
|
+
* pre-C7 single-axis (`current_binding_level`) classifier produced:
|
|
85
|
+
*
|
|
86
|
+
* 1. A container bound *through* its `*_item` child reported "none" + a
|
|
87
|
+
* reassuring "structurally correct" hint. Now `is_bound` /
|
|
88
|
+
* `item_child_binding_level` make the child binding visible.
|
|
89
|
+
* 2. A fully-unbound element was called "structurally correct". Now a
|
|
90
|
+
* false `is_bound` yields an honest "no source binding present" hint.
|
|
91
|
+
* 3. A binding to a since-deleted source looked fine. Now
|
|
92
|
+
* `bound_source_exists === false` is `blocking` with the missing-
|
|
93
|
+
* source message.
|
|
94
|
+
*
|
|
95
|
+
* Precedence: container-level binding (blocking) → deleted source
|
|
96
|
+
* (blocking) → nothing bound (advisory, honest) → bound + live (advisory,
|
|
97
|
+
* "structurally correct").
|
|
52
98
|
*/
|
|
53
99
|
function buildHint(report) {
|
|
54
100
|
const r = (report ?? {});
|
|
101
|
+
// F143 — a bound map with no resolved `location` leaf renders 0
|
|
102
|
+
// markers. That is a render-breaking bug, not advisory: surface it as
|
|
103
|
+
// `blocking` even though the binding level itself is "item". This is the
|
|
104
|
+
// structured-boolean entry point; the human-readable `map_location_warning`
|
|
105
|
+
// (F39, branch 1b below) is the companion signal a different backend emits.
|
|
106
|
+
if (r.map_location_missing === true) {
|
|
107
|
+
const fix = typeof r.recommended_fix === 'string' && r.recommended_fix !== ''
|
|
108
|
+
? r.recommended_fix
|
|
109
|
+
: 'Map a single `location` field holding a combined "lat,lng" string.';
|
|
110
|
+
return {
|
|
111
|
+
severity: 'blocking',
|
|
112
|
+
message: 'Map is bound but no `location` field is mapped — no markers will ' +
|
|
113
|
+
`render. ${fix}`,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
// F189 — a `…List` source on a LEAF renderer (grid_item / any non-container)
|
|
117
|
+
// that carries non-empty children: repeatSource clones it per row but the
|
|
118
|
+
// template renders ONLY its own slots, never its nested children → the
|
|
119
|
+
// children are render-dead and the grid shows placeholders. Render-breaking
|
|
120
|
+
// tier → blocking. The PHP inspector ships the human-readable `warning` with
|
|
121
|
+
// both recipes; surface it verbatim. Runs before the zero-mappings / generic
|
|
122
|
+
// branches so the iterator-shape bug is named first.
|
|
123
|
+
if (r.iterator_is_leaf_renderer === true) {
|
|
124
|
+
const msg = typeof r.warning === 'string' && r.warning !== ''
|
|
125
|
+
? r.warning
|
|
126
|
+
: 'This element iterates a list source but is a LEAF renderer ' +
|
|
127
|
+
'(grid_item / *_item) — its nested children are never rendered. ' +
|
|
128
|
+
'Map fields onto the item\'s own slots (title/meta/content/image), ' +
|
|
129
|
+
'or move the List onto a container (column/fragment/row) with #parent leaves.';
|
|
130
|
+
return { severity: 'blocking', message: msg };
|
|
131
|
+
}
|
|
132
|
+
// F174 — a bound element with ZERO field mappings clones the container N
|
|
133
|
+
// times but every clone renders only the template's static placeholder
|
|
134
|
+
// text ("Title" / "Lorem ipsum"), not real data. The binding is
|
|
135
|
+
// structurally item-level so every other signal reports healthy. Same
|
|
136
|
+
// render-breaking tier as map_location_missing → blocking. The PHP
|
|
137
|
+
// inspector ships the human-readable `warning`; surface it verbatim.
|
|
138
|
+
if (r.zero_field_mappings === true) {
|
|
139
|
+
const msg = typeof r.warning === 'string' && r.warning !== ''
|
|
140
|
+
? r.warning
|
|
141
|
+
: 'Bound to a source but with 0 field mappings — the cloned items ' +
|
|
142
|
+
'render the template\'s static placeholder text (Title / Lorem ipsum), ' +
|
|
143
|
+
'not real data. Re-bind with field_mappings AT THIS ITEM ' +
|
|
144
|
+
'(element_bind_source on this same element with non-empty ' +
|
|
145
|
+
'field_mappings). Do NOT bind the individual child leaves instead: ' +
|
|
146
|
+
'on YT5 a "#parent" leaf bind written directly under an iterating ' +
|
|
147
|
+
'item renders placeholder text.';
|
|
148
|
+
return { severity: 'blocking', message: msg };
|
|
149
|
+
}
|
|
150
|
+
// (1) Container-level binding — the original structural bug. Blocking.
|
|
55
151
|
if (r.current_binding_level === 'container') {
|
|
56
152
|
const fix = typeof r.recommended_fix === 'string' && r.recommended_fix !== ''
|
|
57
153
|
? r.recommended_fix
|
|
58
154
|
: 'Move the binding to the first `*_item` child element.';
|
|
59
155
|
return { severity: 'blocking', message: fix };
|
|
60
156
|
}
|
|
157
|
+
// (1b) F39 — a map/map_item bound WITHOUT a `location` field mapping
|
|
158
|
+
// renders zero markers. The PHP inspector only emits map_location_warning
|
|
159
|
+
// for a genuinely-bound map pair, so its mere presence is the signal.
|
|
160
|
+
// Blocking, because the map looks healthy but shows nothing.
|
|
161
|
+
if (typeof r.map_location_warning === 'string' && r.map_location_warning !== '') {
|
|
162
|
+
return { severity: 'blocking', message: r.map_location_warning };
|
|
163
|
+
}
|
|
164
|
+
// (2) C7 bug 3 — bound source no longer exists in the live registry.
|
|
165
|
+
// `bound_source_exists` is only a hard `false` when the registry was
|
|
166
|
+
// wired AND the name was absent; `null`/`undefined` (unknown) never trips
|
|
167
|
+
// this branch.
|
|
168
|
+
if (r.bound_source_exists === false) {
|
|
169
|
+
const msg = typeof r.source_missing_warning === 'string' && r.source_missing_warning !== ''
|
|
170
|
+
? r.source_missing_warning
|
|
171
|
+
: 'The bound source no longer exists in the live source registry — ' +
|
|
172
|
+
'the frontend will render empty. Re-bind to a current source.';
|
|
173
|
+
return { severity: 'blocking', message: msg };
|
|
174
|
+
}
|
|
175
|
+
// (3) C7 bug 2 — nothing is actually bound (neither this node nor, for a
|
|
176
|
+
// container, its item child). `is_bound` is the authoritative signal;
|
|
177
|
+
// when a pre-C7 backend omits it, fall back to current_binding_level.
|
|
178
|
+
const isBound = typeof r.is_bound === 'boolean'
|
|
179
|
+
? r.is_bound
|
|
180
|
+
: r.current_binding_level === 'item';
|
|
181
|
+
if (!isBound) {
|
|
182
|
+
return {
|
|
183
|
+
severity: 'advisory',
|
|
184
|
+
message: 'No source binding present on this element' +
|
|
185
|
+
(r.current_binding_level !== 'item' && r.item_child_binding_level !== 'item'
|
|
186
|
+
? ' or its item child'
|
|
187
|
+
: '') +
|
|
188
|
+
'. Bind a source directly: yootheme_builder_element_bind_source({ ' +
|
|
189
|
+
'template_id, element_path, source_name, field_mappings }) — for a ' +
|
|
190
|
+
'Multi-Items container, bind on the first `*_item` child.',
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
// (4) C7 bug 1 — bound through the item child. Surface that explicitly so
|
|
194
|
+
// the agent does not mistake the container's own "none" level for "unbound".
|
|
195
|
+
if (r.item_child_binding_level === 'item') {
|
|
196
|
+
return {
|
|
197
|
+
severity: 'advisory',
|
|
198
|
+
message: 'Binding looks structurally correct — the source is bound at the ' +
|
|
199
|
+
'item level (on the `*_item` child), which is the canonical ' +
|
|
200
|
+
'Multi-Items shape. Verify element_path via ' +
|
|
201
|
+
'yootheme_builder_element_list if the source still renders empty.',
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
// (5) Genuinely item-bound with a live (or unknown) source.
|
|
61
205
|
return {
|
|
62
206
|
severity: 'advisory',
|
|
63
207
|
message: 'Binding looks structurally correct. Verify element_path via ' +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect-handler.js","sourceRoot":"","sources":["../../../src/tools/multi-items/inspect-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAmB,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAWnE,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;QACzB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5D,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE;QACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACzC,CAAC;IACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,oEAAoE;IACpE,gEAAgE;IAChE,+BAA+B;IAC/B,IAAI,EAAE,CAAC;SACF,MAAM,CAAC;QACJ,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACtB,CAAC;SACD,QAAQ,EAAE;CAClB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"inspect-handler.js","sourceRoot":"","sources":["../../../src/tools/multi-items/inspect-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/builders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAK7D,OAAO,
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/builders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAK7D,OAAO,EAMH,KAAK,iBAAiB,EACzB,MAAM,oBAAoB,CAAC;AAwC5B;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,aAAa,CAMhB;AAyCD,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,iBAAiB,EAAE,CAiR9E"}
|
|
@@ -16,10 +16,10 @@ import { z } from 'zod';
|
|
|
16
16
|
import { withSiteRetry } from '../pool-resolve-helper.js';
|
|
17
17
|
import { SITE_ID_SCHEMA, TEMPLATE_ID } from '../shared-schemas.js';
|
|
18
18
|
import { FIELDS, FLAT } from '../sparse-fields.js';
|
|
19
|
-
import { defineTool, mutating, readOnly, withSiteMeta, } from '../tool-builder.js';
|
|
19
|
+
import { creating, defineTool, mutating, readOnly, withSiteMeta, } from '../tool-builder.js';
|
|
20
20
|
import { handleGetEtag, handlePageGetLayout, handlePageGetSchema, handlePagesList, handleTemplateSummary, } from './handlers-read.js';
|
|
21
|
-
import { handlePagePublish, handlePagesCreate, handlePagesDelete, handlePageSave, } from './handlers-write.js';
|
|
22
|
-
import { ETAG_OUTPUT_SCHEMA, PAGES_CREATE_INPUT, PAGES_DELETE_INPUT, PAGES_DELETE_OUTPUT_SCHEMA, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
|
|
21
|
+
import { handlePageDynamize, handlePagePublish, handlePagesCreate, handlePagesDelete, handlePageSave, } from './handlers-write.js';
|
|
22
|
+
import { ETAG_OUTPUT_SCHEMA, PAGE_DYNAMIZE_INPUT, PAGES_CREATE_INPUT, PAGES_DELETE_INPUT, PAGES_DELETE_OUTPUT_SCHEMA, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
|
|
23
23
|
// F-14: page-level save/publish accept OPTIONAL ETag (no precondition lock
|
|
24
24
|
// at template level — element/binding mutations REQUIRE one via the strict
|
|
25
25
|
// ETAG in shared-schemas.ts). Schema and description now agree: optional
|
|
@@ -78,11 +78,11 @@ export function buildPagesTools(pool) {
|
|
|
78
78
|
defineTool({
|
|
79
79
|
name: 'yootheme_builder_pages_list',
|
|
80
80
|
description: 'List all pages, templates, and layouts in the YOOtheme Pro builder. ' +
|
|
81
|
-
'Returns template_id, label, type, element count,
|
|
81
|
+
'Returns template_id, label, type, element count, frontend_url, and ' +
|
|
82
|
+
'builder_url (deep-link to open it in the builder) per row. ' +
|
|
82
83
|
'CALL THIS FIRST to discover available template IDs before any tool that needs ' +
|
|
83
84
|
'a template_id (page_get_layout, element_list, page_get_schema, etc.). ' +
|
|
84
|
-
'Keywords: list pages, list templates,
|
|
85
|
-
'index, available templates, what pages exist. ' +
|
|
85
|
+
'Keywords: list pages, list templates, discover template_id. ' +
|
|
86
86
|
'Pass `fields:["id","label"]` to slim. ' +
|
|
87
87
|
'Returns ALL pages in one call (no pagination, typically <50 templates per site). ' +
|
|
88
88
|
'Operates on the default site unless site_id is provided.',
|
|
@@ -93,13 +93,31 @@ export function buildPagesTools(pool) {
|
|
|
93
93
|
}),
|
|
94
94
|
defineTool({
|
|
95
95
|
name: 'yootheme_builder_page_get_layout',
|
|
96
|
-
description: 'Get
|
|
97
|
-
'
|
|
98
|
-
'
|
|
99
|
-
'
|
|
96
|
+
description: 'Get the layout tree for one template. For dynamize/bind work prefer ' +
|
|
97
|
+
'`mode:"bindings_only"` — just the binding skeleton (path, element_type, ' +
|
|
98
|
+
'name, has_binding, source{query_name,props,has_condition}, children), no ' +
|
|
99
|
+
'style props, typically <=15% of full size. Default `mode:"full"` returns ' +
|
|
100
|
+
'nested `{layout, etag}`. `flat:true` gives a depth-first ' +
|
|
101
|
+
'`{elements:[...], etag}` array (combine with `fields[]`). A repeated full ' +
|
|
102
|
+
'read of an unchanged template auto-skips with `[unchanged]` — `force:true` ' +
|
|
103
|
+
're-fetches. Operates on the default site unless site_id is provided.',
|
|
100
104
|
inputSchema: {
|
|
101
105
|
site_id: SITE_ID_SCHEMA,
|
|
102
106
|
template_id: TEMPLATE_ID,
|
|
107
|
+
// F195 (P0): bindings_only returns the trimmed binding skeleton —
|
|
108
|
+
// recommended for dynamize/bind workflows (token-efficient).
|
|
109
|
+
mode: z
|
|
110
|
+
.enum(['full', 'bindings_only'])
|
|
111
|
+
.optional()
|
|
112
|
+
.describe('full (default) = whole nested layout; bindings_only = trimmed ' +
|
|
113
|
+
'binding skeleton (path/type/name/has_binding/source/children, ' +
|
|
114
|
+
'no style props). Prefer bindings_only for dynamize/bind work.'),
|
|
115
|
+
// F195 (P0): bypass the per-process unchanged-read dedup.
|
|
116
|
+
force: z
|
|
117
|
+
.boolean()
|
|
118
|
+
.optional()
|
|
119
|
+
.describe('Re-fetch even if this exact (template, etag) full layout was ' +
|
|
120
|
+
'already read this session (bypasses the [unchanged] dedup).'),
|
|
103
121
|
flat: FLAT,
|
|
104
122
|
fields: FIELDS,
|
|
105
123
|
},
|
|
@@ -140,6 +158,12 @@ export function buildPagesTools(pool) {
|
|
|
140
158
|
'count, max nesting depth, and named landmark sections — computed ' +
|
|
141
159
|
'server-side in one call. Use this to grasp a large template before ' +
|
|
142
160
|
'pulling element_list or page_get_layout. ' +
|
|
161
|
+
// F206 (P3): concrete first-call example. The Desktop client
|
|
162
|
+
// rejected the first guessed call because no example showed the
|
|
163
|
+
// exact arg shape (the whole yt-builder package used none, while
|
|
164
|
+
// apimapper's schema.ts does). Mirrors apimapper's 'Example:'
|
|
165
|
+
// pattern.
|
|
166
|
+
'Example: yootheme_builder_template_summary({ template_id: "default" }). ' +
|
|
143
167
|
'Operates on the default site unless site_id is provided.',
|
|
144
168
|
inputSchema: { site_id: SITE_ID_SCHEMA, template_id: TEMPLATE_ID },
|
|
145
169
|
outputSchema: TEMPLATE_SUMMARY_OUTPUT_SCHEMA,
|
|
@@ -148,14 +172,26 @@ export function buildPagesTools(pool) {
|
|
|
148
172
|
}),
|
|
149
173
|
defineTool({
|
|
150
174
|
name: 'yootheme_builder_page_save',
|
|
151
|
-
description: 'Re-run save-transforms + flush caches.
|
|
152
|
-
'
|
|
153
|
-
'
|
|
175
|
+
description: 'Re-run save-transforms + flush caches. Optionally pass a whole `layout` to ' +
|
|
176
|
+
'REPLACE the template tree ATOMICALLY (F85) — ideal for wholesale dynamization ' +
|
|
177
|
+
'(read layout → swap query → remap fields → write back). A supplied layout is ' +
|
|
178
|
+
'validated + ETag-locked; on rejection nothing is persisted. Omit `layout` to just ' +
|
|
179
|
+
're-run transforms (no-op if byte-identical) — for incremental edits use ' +
|
|
180
|
+
'element_add/update/bind/delete first. New pages: pages_create. Publish: page_publish. ' +
|
|
181
|
+
'ETag optional (412 on conflict; else last-write-wins). ' +
|
|
154
182
|
'Operates on the default site unless site_id is provided.',
|
|
155
183
|
inputSchema: {
|
|
156
184
|
site_id: SITE_ID_SCHEMA,
|
|
157
185
|
template_id: TEMPLATE_ID,
|
|
158
186
|
etag: ETAG,
|
|
187
|
+
// F85: optional whole-layout atomic replacement (ARTICLE/page
|
|
188
|
+
// templates + theme templates). Same shape as pages_create.layout.
|
|
189
|
+
layout: z
|
|
190
|
+
.record(z.string(), z.unknown())
|
|
191
|
+
.optional()
|
|
192
|
+
.describe('Optional whole YT layout-node object (e.g. {type:"layout",children:[...]}) ' +
|
|
193
|
+
'to replace the template tree atomically. Validated + ETag-locked. ' +
|
|
194
|
+
'Omit to just re-run save-transforms.'),
|
|
159
195
|
},
|
|
160
196
|
annotations: mutating('Save Page'),
|
|
161
197
|
handler: async ({ site_id, ...rest }, extra) => withSiteRetry(pool, site_id, async (client, site) => withRenderContext(withSiteMeta(await handlePageSave(client, rest, extra), site), buildRenderContext({
|
|
@@ -191,11 +227,13 @@ export function buildPagesTools(pool) {
|
|
|
191
227
|
// are L1 essentials (see gateway/essentials.ts).
|
|
192
228
|
defineTool({
|
|
193
229
|
name: 'yootheme_builder_pages_create',
|
|
194
|
-
description: 'Create a
|
|
195
|
-
'Optional: slug
|
|
196
|
-
'
|
|
197
|
-
'
|
|
198
|
-
'
|
|
230
|
+
description: 'Create a page (WordPress) or article (Joomla 5/6) with a YOOtheme per-page ' +
|
|
231
|
+
'layout. Required: title. Optional: slug, status (default draft), published ' +
|
|
232
|
+
'(default false → live on true: WP publish / Joomla state 1), layout (JSON), ' +
|
|
233
|
+
'menu_item (Joomla SEF route), dry_run (preflight, no persist). Returns page_id ' +
|
|
234
|
+
'(WP) / article_id (Joomla), slug, template_id (page:{id} or article:{id}), etag, ' +
|
|
235
|
+
'warnings. Joomla: a published article has NO SEF route until a menu item points ' +
|
|
236
|
+
'at it — pass menu_item, else frontend_url may 404. ' +
|
|
199
237
|
'Operates on the default site unless site_id is provided.',
|
|
200
238
|
inputSchema: { site_id: SITE_ID_SCHEMA, ...PAGES_CREATE_INPUT },
|
|
201
239
|
// No outputSchema: the response shape is a discriminated union
|
|
@@ -210,15 +248,40 @@ export function buildPagesTools(pool) {
|
|
|
210
248
|
locale: localeForSite(site),
|
|
211
249
|
}))),
|
|
212
250
|
}),
|
|
251
|
+
// ─── P-G (Goldstandard wave 3) — page_dynamize ────────────────
|
|
252
|
+
// THE one-call canonical path to dynamize an existing designed
|
|
253
|
+
// section. L1 essential: an agent must reach it directly INSTEAD
|
|
254
|
+
// of hand-editing layout JSON (the recipe is CODE, server-side).
|
|
213
255
|
defineTool({
|
|
214
|
-
name: '
|
|
215
|
-
description: '
|
|
216
|
-
'
|
|
217
|
-
'
|
|
218
|
-
'
|
|
219
|
-
'
|
|
220
|
-
'
|
|
256
|
+
name: 'yootheme_builder_page_dynamize',
|
|
257
|
+
description: 'One-call way to dynamize a designed section: copies the layout ' +
|
|
258
|
+
'byte-identically and swaps only what you map. Use INSTEAD of ' +
|
|
259
|
+
'hand-editing JSON. Give a REFERENCE (section_name from ' +
|
|
260
|
+
'template_summary, or element_path) + list_source_name + a leaf_map ' +
|
|
261
|
+
'(original leaf field-name → flat flow field; #parent + tuned props kept). ' +
|
|
262
|
+
'A section with several source blocks (Played/Next/Later) dynamizes in ONE ' +
|
|
263
|
+
'call via source_map ({match, source_name, leaf_map?}[]). Sub-query panels: ' +
|
|
264
|
+
'key by "<subquery>.<leaf>". Returns page + `summary`. Requires page.title. ' +
|
|
221
265
|
'Operates on the default site unless site_id is provided.',
|
|
266
|
+
inputSchema: { site_id: SITE_ID_SCHEMA, ...PAGE_DYNAMIZE_INPUT },
|
|
267
|
+
// No outputSchema: the response is the create wire-shape (WP
|
|
268
|
+
// page_id / Joomla article_id discriminated union) plus the
|
|
269
|
+
// `summary` object — pages_create uses the same no-outputSchema
|
|
270
|
+
// pattern for its discriminated union.
|
|
271
|
+
annotations: creating('Dynamize Page'),
|
|
272
|
+
handler: async ({ site_id, ...rest }, extra) => withSiteRetry(pool, site_id, async (client, site) => withRenderContext(withSiteMeta(await handlePageDynamize(client, rest, extra), site), buildRenderContext({
|
|
273
|
+
siteUrl: site.url,
|
|
274
|
+
parentTemplateId: null,
|
|
275
|
+
locale: localeForSite(site),
|
|
276
|
+
}))),
|
|
277
|
+
}),
|
|
278
|
+
defineTool({
|
|
279
|
+
name: 'yootheme_builder_pages_delete',
|
|
280
|
+
description: 'Delete a page (WordPress) or article (Joomla 5/6) with its YOOtheme per-page ' +
|
|
281
|
+
'layout. Requires confirm:true (gate against accidental deletion). Default: trash ' +
|
|
282
|
+
'(recoverable). force:true: permanent delete. Refuses non-page/article types with ' +
|
|
283
|
+
'403 (Layer 9 defense). Returns deleted:true, page_id (WP) / article_id (Joomla), ' +
|
|
284
|
+
'force_deleted, bumped etag. Operates on the default site unless site_id is provided.',
|
|
222
285
|
inputSchema: { site_id: SITE_ID_SCHEMA, ...PAGES_DELETE_INPUT },
|
|
223
286
|
outputSchema: PAGES_DELETE_OUTPUT_SCHEMA,
|
|
224
287
|
annotations: mutating('Delete Page'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../src/tools/pages/builders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACH,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,YAAY,GAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,GACjC,MAAM,cAAc,CAAC;AAEtB,2EAA2E;AAC3E,2EAA2E;AAC3E,yEAAyE;AACzE,0EAA0E;AAC1E,8EAA8E;AAC9E,MAAM,IAAI,GAAG,CAAC;KACT,MAAM,EAAE;KACR,QAAQ,EAAE;KACV,QAAQ,CACL,yDAAyD;IACrD,0EAA0E;IAC1E,6EAA6E,CACpF,CAAC;AAkBN;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAIlC;IACG,OAAO;QACH,kBAAkB,EAAE,KAAK,CAAC,gBAAgB,IAAI,IAAI;QAClD,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;QAC5B,QAAQ,EAAE,KAAK,CAAC,OAAO;KAC1B,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,IAAkB;IACrC,MAAM,QAAQ,GAAY,IAAI,CAAC,QAAQ,CAAC;IACxC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAC5E,MAAM,KAAK,GAAI,QAAiC,CAAC,MAAM,CAAC;QACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAKD;;;;;;GAMG;AACH,SAAS,iBAAiB,CACtB,MAAS,EACT,GAAkB;IAElB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;IAC1B,MAAM,UAAU,GACZ,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAC3D,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE;QAClC,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC;IAClC,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAgB;IAC5C,OAAO;QACH,UAAU,CAAC;YACP,IAAI,EAAE,6BAA6B;YACnC,WAAW,EACP,sEAAsE;gBACtE,
|
|
1
|
+
{"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../src/tools/pages/builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,10 +12,14 @@ import { type ToolResult } from '../tool-builder.js';
|
|
|
12
12
|
export declare function handlePagesList(client: RestClient, { fields }: {
|
|
13
13
|
fields?: readonly string[];
|
|
14
14
|
}): Promise<ToolResult>;
|
|
15
|
-
|
|
15
|
+
/** Test-only: clear the dedup cache between cases (mirrors the bus reset idiom). */
|
|
16
|
+
export declare function __resetLayoutDedupCacheForTests(): void;
|
|
17
|
+
export declare function handlePageGetLayout(client: RestClient, { template_id, flat, fields, mode, force }: {
|
|
16
18
|
template_id: string;
|
|
17
19
|
flat?: boolean;
|
|
18
20
|
fields?: readonly string[];
|
|
21
|
+
mode?: 'full' | 'bindings_only';
|
|
22
|
+
force?: boolean;
|
|
19
23
|
}): Promise<ToolResult>;
|
|
20
24
|
export declare function handlePageGetSchema(client: RestClient, { template_id }: {
|
|
21
25
|
template_id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers-read.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/handlers-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"handlers-read.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/handlers-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAkBpE,OAAO,EAIH,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAI5B,wBAAsB,eAAe,CACjC,MAAM,EAAE,UAAU,EAClB,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC3C,OAAO,CAAC,UAAU,CAAC,CAwCrB;AAsBD,oFAAoF;AACpF,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAuED,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,GACF,OAAO,CAAC,UAAU,CAAC,CA0KrB;AAID,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACzC,OAAO,CAAC,UAAU,CAAC,CA4CrB;AAID,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB3E;AAID;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACzC,OAAO,CAAC,UAAU,CAAC,CA8CrB"}
|