@wootsup/yt-builder-mcp 1.2.0 → 1.4.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 +16 -12
- 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/cli/doctor-command.d.ts +21 -0
- package/dist/cli/doctor-command.d.ts.map +1 -0
- package/dist/cli/doctor-command.js +111 -0
- package/dist/cli/doctor-command.js.map +1 -0
- package/dist/cli/invocation-decision.d.ts.map +1 -1
- package/dist/cli/invocation-decision.js +2 -0
- package/dist/cli/invocation-decision.js.map +1 -1
- package/dist/client.d.ts +14 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +9 -0
- package/dist/client.js.map +1 -1
- package/dist/diagnostics/ca-trust.d.ts +16 -0
- package/dist/diagnostics/ca-trust.d.ts.map +1 -0
- package/dist/diagnostics/ca-trust.js +54 -0
- package/dist/diagnostics/ca-trust.js.map +1 -0
- package/dist/diagnostics/diagnose-network-error.d.ts +37 -0
- package/dist/diagnostics/diagnose-network-error.d.ts.map +1 -0
- package/dist/diagnostics/diagnose-network-error.js +158 -0
- package/dist/diagnostics/diagnose-network-error.js.map +1 -0
- package/dist/diagnostics/doctor.d.ts +62 -0
- package/dist/diagnostics/doctor.d.ts.map +1 -0
- package/dist/diagnostics/doctor.js +165 -0
- package/dist/diagnostics/doctor.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 +46 -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 +45 -0
- package/dist/index.js.map +1 -1
- package/dist/install-skill.d.ts +1 -1
- package/dist/install-skill.js +2 -2
- package/dist/net/extra-headers.d.ts +66 -0
- package/dist/net/extra-headers.d.ts.map +1 -0
- package/dist/net/extra-headers.js +164 -0
- package/dist/net/extra-headers.js.map +1 -0
- package/dist/net/internal-host.d.ts +45 -0
- package/dist/net/internal-host.d.ts.map +1 -0
- package/dist/net/internal-host.js +164 -0
- package/dist/net/internal-host.js.map +1 -0
- package/dist/net/proxy-dispatcher.d.ts +40 -0
- package/dist/net/proxy-dispatcher.d.ts.map +1 -0
- package/dist/net/proxy-dispatcher.js +65 -0
- package/dist/net/proxy-dispatcher.js.map +1 -0
- package/dist/proxy/bridge.d.ts +43 -0
- package/dist/proxy/bridge.d.ts.map +1 -0
- package/dist/proxy/bridge.js +155 -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-ca-env.d.ts +40 -0
- package/dist/setup-ca-env.d.ts.map +1 -0
- package/dist/setup-ca-env.js +58 -0
- package/dist/setup-ca-env.js.map +1 -0
- package/dist/setup-ca-reprobe.d.ts +38 -0
- package/dist/setup-ca-reprobe.d.ts.map +1 -0
- package/dist/setup-ca-reprobe.js +68 -0
- package/dist/setup-ca-reprobe.js.map +1 -0
- package/dist/setup-cli.d.ts +37 -2
- package/dist/setup-cli.d.ts.map +1 -1
- package/dist/setup-cli.js +178 -4
- package/dist/setup-cli.js.map +1 -1
- package/dist/setup-npx-spec.d.ts +44 -0
- package/dist/setup-npx-spec.d.ts.map +1 -0
- package/dist/setup-npx-spec.js +66 -0
- package/dist/setup-npx-spec.js.map +1 -0
- package/dist/setup-prompts.d.ts +14 -1
- package/dist/setup-prompts.d.ts.map +1 -1
- package/dist/setup-prompts.js +53 -1
- package/dist/setup-prompts.js.map +1 -1
- package/dist/setup-wizard-defaults.d.ts.map +1 -1
- package/dist/setup-wizard-defaults.js +29 -5
- package/dist/setup-wizard-defaults.js.map +1 -1
- package/dist/setup-wizard-handshake.d.ts +4 -4
- package/dist/setup-wizard-handshake.d.ts.map +1 -1
- package/dist/setup-wizard-handshake.js +46 -12
- package/dist/setup-wizard-handshake.js.map +1 -1
- package/dist/setup-wizard-types.d.ts +81 -0
- package/dist/setup-wizard-types.d.ts.map +1 -1
- package/dist/setup-wizard.d.ts +2 -2
- package/dist/setup-wizard.d.ts.map +1 -1
- package/dist/setup-wizard.js +140 -18
- package/dist/setup-wizard.js.map +1 -1
- package/dist/sites/client-pool.d.ts +8 -1
- package/dist/sites/client-pool.d.ts.map +1 -1
- package/dist/sites/client-pool.js +34 -4
- 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 +63 -13
- 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 +8 -2
- package/dist/tools/elements/handlers.d.ts.map +1 -1
- package/dist/tools/elements/handlers.js +76 -28
- 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/health-format.d.ts +3 -0
- package/dist/tools/format/health-format.d.ts.map +1 -1
- package/dist/tools/format/health-format.js +21 -4
- package/dist/tools/format/health-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 +56 -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 +153 -39
- package/dist/tools/pages/builders.js.map +1 -1
- package/dist/tools/pages/handlers-read.d.ts +40 -5
- package/dist/tools/pages/handlers-read.d.ts.map +1 -1
- package/dist/tools/pages/handlers-read.js +404 -76
- 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 +74 -5
- package/dist/tools/pages/schemas.d.ts.map +1 -1
- package/dist/tools/pages/schemas.js +243 -8
- package/dist/tools/pages/schemas.js.map +1 -1
- package/dist/tools/shared-schemas.d.ts +3 -0
- package/dist/tools/shared-schemas.d.ts.map +1 -1
- package/dist/tools/shared-schemas.js +43 -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 +93 -10
- 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 +12 -1
- package/dist/tools/sources/handlers.d.ts.map +1 -1
- package/dist/tools/sources/handlers.js +103 -16
- package/dist/tools/sources/handlers.js.map +1 -1
- package/dist/tools/sparse-fields.d.ts +73 -0
- package/dist/tools/sparse-fields.d.ts.map +1 -1
- package/dist/tools/sparse-fields.js +136 -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/dist/update/update-check.d.ts +56 -0
- package/dist/update/update-check.d.ts.map +1 -0
- package/dist/update/update-check.js +155 -0
- package/dist/update/update-check.js.map +1 -0
- package/manifest.json +1 -1
- package/package.json +5 -2
- package/skills/yt-builder-mcp/SKILL.md +148 -82
|
@@ -17,7 +17,17 @@ interface SavePublishInput {
|
|
|
17
17
|
template_id: string;
|
|
18
18
|
etag?: string;
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
interface SaveInput extends SavePublishInput {
|
|
21
|
+
/**
|
|
22
|
+
* F85 (2026-06-10): optional whole-layout atomic write. When supplied,
|
|
23
|
+
* the REST layer replaces the template tree (Layer-1 structural +
|
|
24
|
+
* Layer-2 element-type whitelist validated, under the same ETag lock)
|
|
25
|
+
* instead of only re-running save-transforms. Lets a wholesale
|
|
26
|
+
* dynamization land in one call rather than element-by-element surgery.
|
|
27
|
+
*/
|
|
28
|
+
layout?: Record<string, unknown>;
|
|
29
|
+
}
|
|
30
|
+
export declare function handlePageSave(client: RestClient, { template_id, etag, layout }: SaveInput, extra?: HandlerExtra): Promise<ToolResult>;
|
|
21
31
|
export declare function handlePagePublish(client: RestClient, { template_id, etag }: SavePublishInput, extra?: HandlerExtra): Promise<ToolResult>;
|
|
22
32
|
/**
|
|
23
33
|
* Input shape for the `pages_create` handler. Mirrors the Zod schema
|
|
@@ -31,7 +41,35 @@ interface PagesCreateInput {
|
|
|
31
41
|
readonly status?: 'publish' | 'draft' | 'pending' | 'private' | 'future';
|
|
32
42
|
readonly layout?: Record<string, unknown>;
|
|
33
43
|
readonly dry_run?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* F12 (2026-06-09): one-boolean publish shortcut. Maps to `status`
|
|
46
|
+
* before the REST call (the host has no `published` field). See
|
|
47
|
+
* {@link resolveCreateStatus}.
|
|
48
|
+
*/
|
|
49
|
+
readonly published?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* F64 (2026-06-10): Joomla-only — create a SEF menu-item route for
|
|
52
|
+
* the new article (true = hidden default menutype, string = explicit
|
|
53
|
+
* menutype). Passed through to the REST body verbatim.
|
|
54
|
+
*/
|
|
55
|
+
readonly menu_item?: boolean | string;
|
|
34
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* F12 (2026-06-09): collapse the friendly `published` boolean into the
|
|
59
|
+
* canonical `status` the PHP host understands.
|
|
60
|
+
*
|
|
61
|
+
* Precedence: an EXPLICIT `status` always wins — `published` is the
|
|
62
|
+
* ergonomic shortcut, not an override. So:
|
|
63
|
+
* - status given → use it verbatim (published ignored).
|
|
64
|
+
* - status absent + true → 'publish' (WP post_status=publish, Joomla state=1).
|
|
65
|
+
* - status absent + false/∅ → undefined (server applies its draft default).
|
|
66
|
+
*
|
|
67
|
+
* Returning `undefined` (rather than an explicit `'draft'`) for the
|
|
68
|
+
* default case preserves the existing wire shape — the server's Q6
|
|
69
|
+
* default-to-draft logic stays authoritative and the body byte-shape is
|
|
70
|
+
* unchanged for legacy callers that never sent `published`.
|
|
71
|
+
*/
|
|
72
|
+
export declare function resolveCreateStatus(status: PagesCreateInput['status'], published: boolean | undefined): PagesCreateInput['status'] | undefined;
|
|
35
73
|
/**
|
|
36
74
|
* `pages_create` — POST `/pages` with the provided body. On
|
|
37
75
|
* `dry_run:true`, the REST handler runs validation Layers 1+2+4
|
|
@@ -40,6 +78,62 @@ interface PagesCreateInput {
|
|
|
40
78
|
* `PAGES_CREATE_OUTPUT_SCHEMA`.
|
|
41
79
|
*/
|
|
42
80
|
export declare function handlePagesCreate(client: RestClient, input: PagesCreateInput, extra?: HandlerExtra): Promise<ToolResult>;
|
|
81
|
+
/**
|
|
82
|
+
* A single `leaf_map` value — string OR the F96 `{name, filters?}` shape.
|
|
83
|
+
* The handler forwards the whole `leaf_map` verbatim; the PHP
|
|
84
|
+
* LayoutDynamizer normalises + applies it.
|
|
85
|
+
*/
|
|
86
|
+
type DynamizeFieldMapping = string | {
|
|
87
|
+
name: string;
|
|
88
|
+
filters?: Record<string, unknown>;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Input shape for the `page_dynamize` handler. Mirrors the Zod
|
|
92
|
+
* `PAGE_DYNAMIZE_INPUT` in `./schemas.ts` — kept as a structural interface
|
|
93
|
+
* so the handler has no runtime Zod dependency and forwards whatever the
|
|
94
|
+
* MCP harness already validated.
|
|
95
|
+
*/
|
|
96
|
+
interface PageDynamizeInput {
|
|
97
|
+
readonly template_id: string;
|
|
98
|
+
readonly section_name?: string;
|
|
99
|
+
readonly element_path?: string;
|
|
100
|
+
readonly list_source_name?: string;
|
|
101
|
+
readonly source_map?: ReadonlyArray<{
|
|
102
|
+
readonly match: string;
|
|
103
|
+
readonly source_name: string;
|
|
104
|
+
readonly leaf_map?: Record<string, DynamizeFieldMapping>;
|
|
105
|
+
}>;
|
|
106
|
+
readonly leaf_map?: Record<string, DynamizeFieldMapping>;
|
|
107
|
+
readonly conditions?: Record<string, {
|
|
108
|
+
name: string;
|
|
109
|
+
filters: {
|
|
110
|
+
condition: '!' | '!!';
|
|
111
|
+
};
|
|
112
|
+
}>;
|
|
113
|
+
readonly remove_leaves?: readonly string[];
|
|
114
|
+
readonly page: {
|
|
115
|
+
readonly title: string;
|
|
116
|
+
readonly slug?: string;
|
|
117
|
+
readonly published?: boolean;
|
|
118
|
+
readonly status?: string;
|
|
119
|
+
readonly menu_item?: boolean | string;
|
|
120
|
+
};
|
|
121
|
+
readonly etag?: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* `page_dynamize` — POST `/pages/dynamize`. THE one-call canonical path to
|
|
125
|
+
* dynamize an existing designed section: the server copies the reference
|
|
126
|
+
* subtree byte-identically and swaps only the mapped queries + leaf
|
|
127
|
+
* field-names (the recipe of `dynamize-existing-layout.md` as CODE), then
|
|
128
|
+
* creates the page through the same hardened create path. The 201 carries
|
|
129
|
+
* a `summary` self-check ({queries_swapped, leaves_remapped, leaves_kept,
|
|
130
|
+
* leaves_removed, unmatched_map_keys, kept_unresolvable}). A non-empty
|
|
131
|
+
* `unmatched_map_keys` means the agent mapped a field the reference subtree
|
|
132
|
+
* never bound; a non-zero `kept_unresolvable.count` means a sub-query panel
|
|
133
|
+
* had no flow field (its leaves render empty) — extend leaf_map with the
|
|
134
|
+
* qualified "<subquery>.<leaf>" keys and retry.
|
|
135
|
+
*/
|
|
136
|
+
export declare function handlePageDynamize(client: RestClient, input: PageDynamizeInput, extra?: HandlerExtra): Promise<ToolResult>;
|
|
43
137
|
/**
|
|
44
138
|
* Input shape for the `pages_delete` handler. Mirrors the Zod schema
|
|
45
139
|
* `PAGES_DELETE_INPUT` in `./schemas.ts`. `confirm` is `true` literal —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers-write.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/handlers-write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAKH,KAAK,YAAY,EACjB,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAE5B,UAAU,gBAAgB;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,wBAAsB,cAAc,CAChC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"handlers-write.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/handlers-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,14 @@ import { encodeTemplateId } from '../../client.js';
|
|
|
15
15
|
import { PHASE_CONFIRM, PHASE_SEND, PHASE_SERVER } from '../progress-phases.js';
|
|
16
16
|
import { createProgressReporter, errorResult, jsonResult, structuredResult, } from '../tool-builder.js';
|
|
17
17
|
// ─── page_save ──────────────────────────────────────────────────────
|
|
18
|
-
export async function handlePageSave(client, { template_id, etag }, extra) {
|
|
18
|
+
export async function handlePageSave(client, { template_id, etag, layout }, extra) {
|
|
19
19
|
const progress = extra ? createProgressReporter(extra) : null;
|
|
20
20
|
await progress?.report(0, 3, PHASE_SEND);
|
|
21
21
|
await progress?.report(1, 3, PHASE_SERVER);
|
|
22
22
|
try {
|
|
23
|
-
|
|
23
|
+
// F85: forward `layout` only when supplied so the historical save
|
|
24
|
+
// body (`{}`) is byte-unchanged for the re-run-transforms path.
|
|
25
|
+
const data = await client.post(`/pages/${encodeTemplateId(template_id)}/save`, layout !== undefined ? { body: { layout }, etag } : { etag });
|
|
24
26
|
await progress?.report(2, 3, PHASE_CONFIRM);
|
|
25
27
|
return jsonResult(data);
|
|
26
28
|
}
|
|
@@ -29,11 +31,38 @@ export async function handlePageSave(client, { template_id, etag }, extra) {
|
|
|
29
31
|
error: e,
|
|
30
32
|
context: { template_id, etag },
|
|
31
33
|
hint: 'On 412 (precondition failed) refresh via yootheme_builder_get_etag ' +
|
|
32
|
-
'and retry — someone else edited the page.'
|
|
34
|
+
'and retry — someone else edited the page. On 422 the supplied ' +
|
|
35
|
+
'`layout` failed validation (unknown element type or bad structure) — ' +
|
|
36
|
+
'the error `path` + `element_type` pinpoint the offending node.',
|
|
33
37
|
});
|
|
34
38
|
}
|
|
35
39
|
}
|
|
36
40
|
// ─── page_publish ───────────────────────────────────────────────────
|
|
41
|
+
/**
|
|
42
|
+
* F202 (P1): when the publish/dynamize response carries a `cms_warning` (the
|
|
43
|
+
* YT-layout is published but the backing CMS object — WP post / Joomla article
|
|
44
|
+
* — is NOT publicly visible: draft/future status, future publish_up, or no
|
|
45
|
+
* route), append it as a SALIENT trailing text block. The JSON leg already
|
|
46
|
+
* carries `cms_visibility` + `cms_warning`; the extra block makes the warning
|
|
47
|
+
* survive a long, context-rotted session where the agent skips parsing the
|
|
48
|
+
* payload and declares success on a page that 404s anonymously.
|
|
49
|
+
*
|
|
50
|
+
* No-op (returns the result unchanged) when there is no `cms_warning` — the
|
|
51
|
+
* publicly-visible happy path keeps its single-leg shape.
|
|
52
|
+
*/
|
|
53
|
+
function withCmsWarningText(result, data) {
|
|
54
|
+
if (typeof data !== 'object' || data === null) {
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
const warning = data.cms_warning;
|
|
58
|
+
if (typeof warning !== 'string' || warning === '') {
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
...result,
|
|
63
|
+
content: [...result.content, { type: 'text', text: warning }],
|
|
64
|
+
};
|
|
65
|
+
}
|
|
37
66
|
export async function handlePagePublish(client, { template_id, etag }, extra) {
|
|
38
67
|
const progress = extra ? createProgressReporter(extra) : null;
|
|
39
68
|
await progress?.report(0, 3, PHASE_SEND);
|
|
@@ -41,7 +70,7 @@ export async function handlePagePublish(client, { template_id, etag }, extra) {
|
|
|
41
70
|
try {
|
|
42
71
|
const data = await client.post(`/pages/${encodeTemplateId(template_id)}/publish`, { etag });
|
|
43
72
|
await progress?.report(2, 3, PHASE_CONFIRM);
|
|
44
|
-
return jsonResult(data);
|
|
73
|
+
return withCmsWarningText(jsonResult(data), data);
|
|
45
74
|
}
|
|
46
75
|
catch (e) {
|
|
47
76
|
return errorResult({
|
|
@@ -52,6 +81,28 @@ export async function handlePagePublish(client, { template_id, etag }, extra) {
|
|
|
52
81
|
});
|
|
53
82
|
}
|
|
54
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* F12 (2026-06-09): collapse the friendly `published` boolean into the
|
|
86
|
+
* canonical `status` the PHP host understands.
|
|
87
|
+
*
|
|
88
|
+
* Precedence: an EXPLICIT `status` always wins — `published` is the
|
|
89
|
+
* ergonomic shortcut, not an override. So:
|
|
90
|
+
* - status given → use it verbatim (published ignored).
|
|
91
|
+
* - status absent + true → 'publish' (WP post_status=publish, Joomla state=1).
|
|
92
|
+
* - status absent + false/∅ → undefined (server applies its draft default).
|
|
93
|
+
*
|
|
94
|
+
* Returning `undefined` (rather than an explicit `'draft'`) for the
|
|
95
|
+
* default case preserves the existing wire shape — the server's Q6
|
|
96
|
+
* default-to-draft logic stays authoritative and the body byte-shape is
|
|
97
|
+
* unchanged for legacy callers that never sent `published`.
|
|
98
|
+
*/
|
|
99
|
+
export function resolveCreateStatus(status, published) {
|
|
100
|
+
if (status !== undefined)
|
|
101
|
+
return status;
|
|
102
|
+
if (published === true)
|
|
103
|
+
return 'publish';
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
55
106
|
/**
|
|
56
107
|
* `pages_create` — POST `/pages` with the provided body. On
|
|
57
108
|
* `dry_run:true`, the REST handler runs validation Layers 1+2+4
|
|
@@ -63,8 +114,17 @@ export async function handlePagesCreate(client, input, extra) {
|
|
|
63
114
|
const progress = extra ? createProgressReporter(extra) : null;
|
|
64
115
|
await progress?.report(0, 3, PHASE_SEND);
|
|
65
116
|
await progress?.report(1, 3, PHASE_SERVER);
|
|
117
|
+
// F12: translate the `published` shortcut into the host-native
|
|
118
|
+
// `status` and DROP `published` from the wire body (the REST host has
|
|
119
|
+
// no such field). `status` is omitted entirely when neither an
|
|
120
|
+
// explicit status nor published:true was given, so the server's
|
|
121
|
+
// draft-default stays authoritative and the body shape is unchanged
|
|
122
|
+
// for legacy callers.
|
|
123
|
+
const { published: _published, status: _status, ...rest } = input;
|
|
124
|
+
const resolvedStatus = resolveCreateStatus(input.status, input.published);
|
|
125
|
+
const body = resolvedStatus !== undefined ? { ...rest, status: resolvedStatus } : rest;
|
|
66
126
|
try {
|
|
67
|
-
const data = await client.post('/pages', { body
|
|
127
|
+
const data = await client.post('/pages', { body });
|
|
68
128
|
await progress?.report(2, 3, PHASE_CONFIRM);
|
|
69
129
|
return jsonResult(data);
|
|
70
130
|
}
|
|
@@ -77,9 +137,78 @@ export async function handlePagesCreate(client, input, extra) {
|
|
|
77
137
|
dry_run: input.dry_run ?? false,
|
|
78
138
|
},
|
|
79
139
|
hint: 'Common issues: missing title (400), unknown element type in layout ' +
|
|
80
|
-
'(422), Builder pre-check failed (422 dry-run or wet), post_type
|
|
81
|
-
'than
|
|
82
|
-
'actually create.'
|
|
140
|
+
'(422), Builder pre-check failed (422 dry-run or wet), post_type/content_type ' +
|
|
141
|
+
'other than page/article (403). For dry-run: re-submit without dry_run:true ' +
|
|
142
|
+
'to actually create. ' +
|
|
143
|
+
// F95 (2026-06-10): a `body_parse_failed` 400 means the AI host
|
|
144
|
+
// TRUNCATED the arguments JSON in transit (a known failure mode
|
|
145
|
+
// for large inline `layout` payloads ~10KB+). Do NOT retry the
|
|
146
|
+
// same giant all-in-one create — create the page with a
|
|
147
|
+
// small/empty layout first, then build it up element-by-element.
|
|
148
|
+
'On a `body_parse_failed` 400 the tool-call arguments were truncated in ' +
|
|
149
|
+
'transit (large inline `layout`): create the page with an empty/small ' +
|
|
150
|
+
'layout, then add elements one at a time via element_add / ' +
|
|
151
|
+
'element_bind_source instead of one giant inline `layout`.',
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* The recency reminder appended to every successful dynamize (research:
|
|
157
|
+
* checklist echo — keeps the "verify visually" step salient even in a
|
|
158
|
+
* long, context-rotted session). One line, by design (F98 rank-3:
|
|
159
|
+
* attention-dilution on a longer echo).
|
|
160
|
+
*/
|
|
161
|
+
const DYNAMIZE_SUCCESS_REMINDER = 'Verify one row visually against the original at the customer viewport before declaring success.';
|
|
162
|
+
/**
|
|
163
|
+
* `page_dynamize` — POST `/pages/dynamize`. THE one-call canonical path to
|
|
164
|
+
* dynamize an existing designed section: the server copies the reference
|
|
165
|
+
* subtree byte-identically and swaps only the mapped queries + leaf
|
|
166
|
+
* field-names (the recipe of `dynamize-existing-layout.md` as CODE), then
|
|
167
|
+
* creates the page through the same hardened create path. The 201 carries
|
|
168
|
+
* a `summary` self-check ({queries_swapped, leaves_remapped, leaves_kept,
|
|
169
|
+
* leaves_removed, unmatched_map_keys, kept_unresolvable}). A non-empty
|
|
170
|
+
* `unmatched_map_keys` means the agent mapped a field the reference subtree
|
|
171
|
+
* never bound; a non-zero `kept_unresolvable.count` means a sub-query panel
|
|
172
|
+
* had no flow field (its leaves render empty) — extend leaf_map with the
|
|
173
|
+
* qualified "<subquery>.<leaf>" keys and retry.
|
|
174
|
+
*/
|
|
175
|
+
export async function handlePageDynamize(client, input, extra) {
|
|
176
|
+
const progress = extra ? createProgressReporter(extra) : null;
|
|
177
|
+
await progress?.report(0, 3, PHASE_SEND);
|
|
178
|
+
await progress?.report(1, 3, PHASE_SERVER);
|
|
179
|
+
try {
|
|
180
|
+
const data = await client.post('/pages/dynamize', { body: input, etag: input.etag });
|
|
181
|
+
await progress?.report(2, 3, PHASE_CONFIRM);
|
|
182
|
+
// Append the one-line recency reminder as a trailing text block so
|
|
183
|
+
// the JSON leg stays byte-pure (parsers read content[0]) while the
|
|
184
|
+
// human + model see the verify-visually nudge.
|
|
185
|
+
const base = jsonResult(data);
|
|
186
|
+
const withReminder = {
|
|
187
|
+
...base,
|
|
188
|
+
content: [...base.content, { type: 'text', text: DYNAMIZE_SUCCESS_REMINDER }],
|
|
189
|
+
};
|
|
190
|
+
// F202: when a dynamize PUBLISHED to a draft/scheduled/unrouted CMS
|
|
191
|
+
// object, surface the cms_warning as a salient trailing block too.
|
|
192
|
+
return withCmsWarningText(withReminder, data);
|
|
193
|
+
}
|
|
194
|
+
catch (e) {
|
|
195
|
+
return errorResult({
|
|
196
|
+
error: e,
|
|
197
|
+
context: {
|
|
198
|
+
template_id: input.template_id,
|
|
199
|
+
section_name: input.section_name,
|
|
200
|
+
element_path: input.element_path,
|
|
201
|
+
list_source_name: input.list_source_name,
|
|
202
|
+
},
|
|
203
|
+
hint: 'On 404 section_not_found the error data lists `available_named_sections` — ' +
|
|
204
|
+
'pick one and retry. Provide EXACTLY ONE of section_name / element_path. ' +
|
|
205
|
+
'On 422 the dynamized layout failed validation (the `path` + `element_type` ' +
|
|
206
|
+
'pinpoint the node). On 412 refresh via yootheme_builder_get_etag and retry. ' +
|
|
207
|
+
'Check the response `summary.unmatched_map_keys` — a non-empty list means a ' +
|
|
208
|
+
'leaf_map key did not match any leaf in the reference subtree (typo, or wrong ' +
|
|
209
|
+
'reference section). Check `summary.kept_unresolvable` — a non-zero count means a ' +
|
|
210
|
+
'sub-query panel had no flow field; add the qualified "<subquery>.<leaf>" keys to ' +
|
|
211
|
+
'leaf_map and retry.',
|
|
83
212
|
});
|
|
84
213
|
}
|
|
85
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers-write.js","sourceRoot":"","sources":["../../../src/tools/pages/handlers-write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,gBAAgB,EAAmB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACH,sBAAsB,EACtB,WAAW,EACX,UAAU,EACV,gBAAgB,GAGnB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"handlers-write.js","sourceRoot":"","sources":["../../../src/tools/pages/handlers-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,5 +13,5 @@
|
|
|
13
13
|
* @license MIT
|
|
14
14
|
*/
|
|
15
15
|
export { buildPagesTools } from './builders.js';
|
|
16
|
-
export { ETAG_OUTPUT_SCHEMA, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
|
|
16
|
+
export { ETAG_OUTPUT_SCHEMA, PAGE_DYNAMIZE_INPUT, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
|
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACH,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,GACjC,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACH,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,GACjC,MAAM,cAAc,CAAC"}
|
|
@@ -13,5 +13,5 @@
|
|
|
13
13
|
* @license MIT
|
|
14
14
|
*/
|
|
15
15
|
export { buildPagesTools } from './builders.js';
|
|
16
|
-
export { ETAG_OUTPUT_SCHEMA, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
|
|
16
|
+
export { ETAG_OUTPUT_SCHEMA, PAGE_DYNAMIZE_INPUT, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACH,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,GACjC,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACH,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,GACjC,MAAM,cAAc,CAAC"}
|
|
@@ -10,21 +10,28 @@ import { z } from 'zod';
|
|
|
10
10
|
export declare const PAGES_LIST_OUTPUT_SCHEMA: z.ZodObject<{
|
|
11
11
|
items: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
12
12
|
total: z.ZodNumber;
|
|
13
|
+
returned: z.ZodOptional<z.ZodNumber>;
|
|
14
|
+
next_cursor: z.ZodOptional<z.ZodString>;
|
|
13
15
|
etag: z.ZodOptional<z.ZodString>;
|
|
14
16
|
projected_fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
15
17
|
available_fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
16
18
|
unknown_fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
19
|
+
projection_warning: z.ZodOptional<z.ZodString>;
|
|
17
20
|
}, z.core.$strip>;
|
|
18
21
|
export declare const SCHEMA_OUTPUT_SCHEMA: z.ZodObject<{
|
|
19
22
|
items: z.ZodArray<z.ZodObject<{
|
|
20
|
-
rel_path: z.ZodString
|
|
23
|
+
rel_path: z.ZodOptional<z.ZodString>;
|
|
21
24
|
path: z.ZodOptional<z.ZodString>;
|
|
22
|
-
element_type: z.ZodString
|
|
23
|
-
label: z.ZodString
|
|
24
|
-
has_binding: z.ZodBoolean
|
|
25
|
-
}, z.core.$
|
|
25
|
+
element_type: z.ZodOptional<z.ZodString>;
|
|
26
|
+
label: z.ZodOptional<z.ZodString>;
|
|
27
|
+
has_binding: z.ZodOptional<z.ZodBoolean>;
|
|
28
|
+
}, z.core.$loose>>;
|
|
26
29
|
total: z.ZodNumber;
|
|
27
30
|
template_id: z.ZodString;
|
|
31
|
+
projected_fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
32
|
+
available_fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
33
|
+
unknown_fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
34
|
+
projection_warning: z.ZodOptional<z.ZodString>;
|
|
28
35
|
}, z.core.$strip>;
|
|
29
36
|
export declare const ETAG_OUTPUT_SCHEMA: z.ZodObject<{
|
|
30
37
|
etag: z.ZodString;
|
|
@@ -66,6 +73,8 @@ export declare const PAGES_CREATE_INPUT: {
|
|
|
66
73
|
private: "private";
|
|
67
74
|
future: "future";
|
|
68
75
|
}>>;
|
|
76
|
+
published: z.ZodDefault<z.ZodBoolean>;
|
|
77
|
+
menu_item: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
69
78
|
layout: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
70
79
|
dry_run: z.ZodOptional<z.ZodBoolean>;
|
|
71
80
|
};
|
|
@@ -91,6 +100,7 @@ export declare const PAGES_CREATE_OUTPUT_SCHEMA: z.ZodObject<{
|
|
|
91
100
|
slug: z.ZodString;
|
|
92
101
|
status: z.ZodString;
|
|
93
102
|
frontend_url: z.ZodNullable<z.ZodString>;
|
|
103
|
+
builder_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
94
104
|
template_id: z.ZodString;
|
|
95
105
|
etag: z.ZodString;
|
|
96
106
|
warnings: z.ZodArray<z.ZodString>;
|
|
@@ -140,6 +150,56 @@ export declare const PAGES_DELETE_INPUT: {
|
|
|
140
150
|
confirm: z.ZodLiteral<true>;
|
|
141
151
|
force: z.ZodOptional<z.ZodBoolean>;
|
|
142
152
|
};
|
|
153
|
+
/**
|
|
154
|
+
* Input shape for `yootheme_builder_page_dynamize`. Wraps
|
|
155
|
+
* `POST /pages/dynamize`. Narrowest-schema rule: `template_id` +
|
|
156
|
+
* `list_source_name` + `page.title` are required non-empty; `page` carries
|
|
157
|
+
* the create-machinery passthrough; the reference selector is `section_name`
|
|
158
|
+
* OR `element_path` (exactly-one is enforced server-side so a miss can list
|
|
159
|
+
* the available named sections as remediation).
|
|
160
|
+
*/
|
|
161
|
+
export declare const PAGE_DYNAMIZE_INPUT: {
|
|
162
|
+
template_id: z.ZodString;
|
|
163
|
+
section_name: z.ZodOptional<z.ZodString>;
|
|
164
|
+
element_path: z.ZodOptional<z.ZodString>;
|
|
165
|
+
list_source_name: z.ZodOptional<z.ZodString>;
|
|
166
|
+
source_map: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
167
|
+
match: z.ZodString;
|
|
168
|
+
source_name: z.ZodString;
|
|
169
|
+
leaf_map: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
170
|
+
name: z.ZodString;
|
|
171
|
+
filters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
172
|
+
}, z.core.$strict>]>>>;
|
|
173
|
+
}, z.core.$strict>>>;
|
|
174
|
+
leaf_map: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
175
|
+
name: z.ZodString;
|
|
176
|
+
filters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
177
|
+
}, z.core.$strict>]>>>;
|
|
178
|
+
conditions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
179
|
+
name: z.ZodString;
|
|
180
|
+
filters: z.ZodObject<{
|
|
181
|
+
condition: z.ZodEnum<{
|
|
182
|
+
"!": "!";
|
|
183
|
+
"!!": "!!";
|
|
184
|
+
}>;
|
|
185
|
+
}, z.core.$strip>;
|
|
186
|
+
}, z.core.$strict>>>;
|
|
187
|
+
remove_leaves: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
188
|
+
page: z.ZodObject<{
|
|
189
|
+
title: z.ZodString;
|
|
190
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
191
|
+
published: z.ZodOptional<z.ZodBoolean>;
|
|
192
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
193
|
+
publish: "publish";
|
|
194
|
+
draft: "draft";
|
|
195
|
+
pending: "pending";
|
|
196
|
+
private: "private";
|
|
197
|
+
future: "future";
|
|
198
|
+
}>>;
|
|
199
|
+
menu_item: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
200
|
+
}, z.core.$strip>;
|
|
201
|
+
etag: z.ZodOptional<z.ZodString>;
|
|
202
|
+
};
|
|
143
203
|
/**
|
|
144
204
|
* Wire shape for `yootheme_builder_pages_delete` on success.
|
|
145
205
|
*
|
|
@@ -154,4 +214,13 @@ export declare const PAGES_DELETE_OUTPUT_SCHEMA: z.ZodObject<{
|
|
|
154
214
|
force_deleted: z.ZodBoolean;
|
|
155
215
|
etag: z.ZodString;
|
|
156
216
|
}, z.core.$strip>;
|
|
217
|
+
export declare const PAGES_RESOLVE_INPUT: {
|
|
218
|
+
readonly url: z.ZodString;
|
|
219
|
+
};
|
|
220
|
+
export declare const PAGES_RESOLVE_OUTPUT_SCHEMA: z.ZodObject<{
|
|
221
|
+
template_id: z.ZodString;
|
|
222
|
+
post_id: z.ZodNumber;
|
|
223
|
+
type: z.ZodString;
|
|
224
|
+
frontend_url: z.ZodNullable<z.ZodString>;
|
|
225
|
+
}, z.core.$strip>;
|
|
157
226
|
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,wBAAwB
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,wBAAwB;;;;;;;;;;iBA6CnC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;iBA8B/B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAWH,eAAO,MAAM,8BAA8B;;;;;;;;;;;iBAazC,CAAC;AAWH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;CAiE9B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBA2BlC,CAAC;AAEN;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;iBAe7C,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB;;;;CAoB9B,CAAC;AAmCF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqI/B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;;;;;;iBAYlC,CAAC;AAIN,eAAO,MAAM,mBAAmB;;CAStB,CAAC;AAEX,eAAO,MAAM,2BAA2B;;;;;iBAUtC,CAAC"}
|