@wootsup/yt-builder-mcp 1.0.0 → 1.0.1
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/manifest.json +1 -1
- package/package.json +1 -1
- package/skills/{yootheme-builder → yt-builder-mcp}/SKILL.md +1 -1
- package/dist/auth.d.ts +0 -39
- package/dist/auth.d.ts.map +0 -1
- package/dist/auth.js +0 -93
- package/dist/auth.js.map +0 -1
- package/dist/client.d.ts +0 -84
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -151
- package/dist/client.js.map +0 -1
- package/dist/clients/claude-code.d.ts +0 -18
- package/dist/clients/claude-code.d.ts.map +0 -1
- package/dist/clients/claude-code.js +0 -53
- package/dist/clients/claude-code.js.map +0 -1
- package/dist/clients/claude-desktop.d.ts +0 -19
- package/dist/clients/claude-desktop.d.ts.map +0 -1
- package/dist/clients/claude-desktop.js +0 -56
- package/dist/clients/claude-desktop.js.map +0 -1
- package/dist/clients/cline.d.ts +0 -26
- package/dist/clients/cline.d.ts.map +0 -1
- package/dist/clients/cline.js +0 -80
- package/dist/clients/cline.js.map +0 -1
- package/dist/clients/codex-cli.d.ts +0 -42
- package/dist/clients/codex-cli.d.ts.map +0 -1
- package/dist/clients/codex-cli.js +0 -194
- package/dist/clients/codex-cli.js.map +0 -1
- package/dist/clients/continue.d.ts +0 -13
- package/dist/clients/continue.d.ts.map +0 -1
- package/dist/clients/continue.js +0 -52
- package/dist/clients/continue.js.map +0 -1
- package/dist/clients/cursor.d.ts +0 -12
- package/dist/clients/cursor.d.ts.map +0 -1
- package/dist/clients/cursor.js +0 -38
- package/dist/clients/cursor.js.map +0 -1
- package/dist/clients/gemini-cli.d.ts +0 -18
- package/dist/clients/gemini-cli.d.ts.map +0 -1
- package/dist/clients/gemini-cli.js +0 -44
- package/dist/clients/gemini-cli.js.map +0 -1
- package/dist/clients/home.d.ts +0 -14
- package/dist/clients/home.d.ts.map +0 -1
- package/dist/clients/home.js +0 -20
- package/dist/clients/home.js.map +0 -1
- package/dist/clients/index.d.ts +0 -52
- package/dist/clients/index.d.ts.map +0 -1
- package/dist/clients/index.js +0 -72
- package/dist/clients/index.js.map +0 -1
- package/dist/clients/roo-code.d.ts +0 -23
- package/dist/clients/roo-code.d.ts.map +0 -1
- package/dist/clients/roo-code.js +0 -69
- package/dist/clients/roo-code.js.map +0 -1
- package/dist/clients/zed.d.ts +0 -12
- package/dist/clients/zed.d.ts.map +0 -1
- package/dist/clients/zed.js +0 -41
- package/dist/clients/zed.js.map +0 -1
- package/dist/errors/hints.d.ts +0 -51
- package/dist/errors/hints.d.ts.map +0 -1
- package/dist/errors/hints.js +0 -95
- package/dist/errors/hints.js.map +0 -1
- package/dist/errors/mask.d.ts +0 -35
- package/dist/errors/mask.d.ts.map +0 -1
- package/dist/errors/mask.js +0 -49
- package/dist/errors/mask.js.map +0 -1
- package/dist/errors/sanitize.d.ts +0 -31
- package/dist/errors/sanitize.d.ts.map +0 -1
- package/dist/errors/sanitize.js +0 -90
- package/dist/errors/sanitize.js.map +0 -1
- package/dist/errors.d.ts +0 -42
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -61
- package/dist/errors.js.map +0 -1
- package/dist/gateway/advanced-tool/discovery.d.ts +0 -19
- package/dist/gateway/advanced-tool/discovery.d.ts.map +0 -1
- package/dist/gateway/advanced-tool/discovery.js +0 -53
- package/dist/gateway/advanced-tool/discovery.js.map +0 -1
- package/dist/gateway/advanced-tool/domains.d.ts +0 -47
- package/dist/gateway/advanced-tool/domains.d.ts.map +0 -1
- package/dist/gateway/advanced-tool/domains.js +0 -94
- package/dist/gateway/advanced-tool/domains.js.map +0 -1
- package/dist/gateway/advanced-tool/execute.d.ts +0 -29
- package/dist/gateway/advanced-tool/execute.d.ts.map +0 -1
- package/dist/gateway/advanced-tool/execute.js +0 -54
- package/dist/gateway/advanced-tool/execute.js.map +0 -1
- package/dist/gateway/advanced-tool/index.d.ts +0 -36
- package/dist/gateway/advanced-tool/index.d.ts.map +0 -1
- package/dist/gateway/advanced-tool/index.js +0 -39
- package/dist/gateway/advanced-tool/index.js.map +0 -1
- package/dist/gateway/advanced-tool/register.d.ts +0 -18
- package/dist/gateway/advanced-tool/register.d.ts.map +0 -1
- package/dist/gateway/advanced-tool/register.js +0 -69
- package/dist/gateway/advanced-tool/register.js.map +0 -1
- package/dist/gateway/advanced-tool.d.ts +0 -13
- package/dist/gateway/advanced-tool.d.ts.map +0 -1
- package/dist/gateway/advanced-tool.js +0 -13
- package/dist/gateway/advanced-tool.js.map +0 -1
- package/dist/gateway/capturing-server.d.ts +0 -117
- package/dist/gateway/capturing-server.d.ts.map +0 -1
- package/dist/gateway/capturing-server.js +0 -103
- package/dist/gateway/capturing-server.js.map +0 -1
- package/dist/gateway/essentials.d.ts +0 -49
- package/dist/gateway/essentials.d.ts.map +0 -1
- package/dist/gateway/essentials.js +0 -79
- package/dist/gateway/essentials.js.map +0 -1
- package/dist/gateway/test-support.d.ts +0 -41
- package/dist/gateway/test-support.d.ts.map +0 -1
- package/dist/gateway/test-support.js +0 -60
- package/dist/gateway/test-support.js.map +0 -1
- package/dist/index.d.ts +0 -25
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -77
- package/dist/index.js.map +0 -1
- package/dist/install-skill.d.ts +0 -35
- package/dist/install-skill.d.ts.map +0 -1
- package/dist/install-skill.js +0 -107
- package/dist/install-skill.js.map +0 -1
- package/dist/platform/index.d.ts +0 -49
- package/dist/platform/index.d.ts.map +0 -1
- package/dist/platform/index.js +0 -38
- package/dist/platform/index.js.map +0 -1
- package/dist/server.d.ts +0 -50
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -153
- package/dist/server.js.map +0 -1
- package/dist/setup-cli.d.ts +0 -100
- package/dist/setup-cli.d.ts.map +0 -1
- package/dist/setup-cli.js +0 -355
- package/dist/setup-cli.js.map +0 -1
- package/dist/setup-prompts.d.ts +0 -41
- package/dist/setup-prompts.d.ts.map +0 -1
- package/dist/setup-prompts.js +0 -142
- package/dist/setup-prompts.js.map +0 -1
- package/dist/setup-token.d.ts +0 -38
- package/dist/setup-token.d.ts.map +0 -1
- package/dist/setup-token.js +0 -106
- package/dist/setup-token.js.map +0 -1
- package/dist/setup-wizard-defaults.d.ts +0 -43
- package/dist/setup-wizard-defaults.d.ts.map +0 -1
- package/dist/setup-wizard-defaults.js +0 -160
- package/dist/setup-wizard-defaults.js.map +0 -1
- package/dist/setup-wizard-handshake.d.ts +0 -25
- package/dist/setup-wizard-handshake.d.ts.map +0 -1
- package/dist/setup-wizard-handshake.js +0 -103
- package/dist/setup-wizard-handshake.js.map +0 -1
- package/dist/setup-wizard-types.d.ts +0 -148
- package/dist/setup-wizard-types.d.ts.map +0 -1
- package/dist/setup-wizard-types.js +0 -11
- package/dist/setup-wizard-types.js.map +0 -1
- package/dist/setup-wizard.d.ts +0 -33
- package/dist/setup-wizard.d.ts.map +0 -1
- package/dist/setup-wizard.js +0 -166
- package/dist/setup-wizard.js.map +0 -1
- package/dist/setup.d.ts +0 -17
- package/dist/setup.d.ts.map +0 -1
- package/dist/setup.js +0 -33
- package/dist/setup.js.map +0 -1
- package/dist/skill-loader.d.ts +0 -51
- package/dist/skill-loader.d.ts.map +0 -1
- package/dist/skill-loader.js +0 -78
- package/dist/skill-loader.js.map +0 -1
- package/dist/tools/elements/builders.d.ts +0 -24
- package/dist/tools/elements/builders.d.ts.map +0 -1
- package/dist/tools/elements/builders.js +0 -177
- package/dist/tools/elements/builders.js.map +0 -1
- package/dist/tools/elements/handlers-write.d.ts +0 -49
- package/dist/tools/elements/handlers-write.d.ts.map +0 -1
- package/dist/tools/elements/handlers-write.js +0 -148
- package/dist/tools/elements/handlers-write.js.map +0 -1
- package/dist/tools/elements/handlers.d.ts +0 -61
- package/dist/tools/elements/handlers.d.ts.map +0 -1
- package/dist/tools/elements/handlers.js +0 -170
- package/dist/tools/elements/handlers.js.map +0 -1
- package/dist/tools/elements/index.d.ts +0 -28
- package/dist/tools/elements/index.d.ts.map +0 -1
- package/dist/tools/elements/index.js +0 -27
- package/dist/tools/elements/index.js.map +0 -1
- package/dist/tools/elements.d.ts +0 -13
- package/dist/tools/elements.d.ts.map +0 -1
- package/dist/tools/elements.js +0 -13
- package/dist/tools/elements.js.map +0 -1
- package/dist/tools/elicitation.d.ts +0 -87
- package/dist/tools/elicitation.d.ts.map +0 -1
- package/dist/tools/elicitation.js +0 -100
- package/dist/tools/elicitation.js.map +0 -1
- package/dist/tools/format/elements-format.d.ts +0 -40
- package/dist/tools/format/elements-format.d.ts.map +0 -1
- package/dist/tools/format/elements-format.js +0 -194
- package/dist/tools/format/elements-format.js.map +0 -1
- package/dist/tools/format/health-format.d.ts +0 -73
- package/dist/tools/format/health-format.d.ts.map +0 -1
- package/dist/tools/format/health-format.js +0 -178
- package/dist/tools/format/health-format.js.map +0 -1
- package/dist/tools/format/inspection-format.d.ts +0 -58
- package/dist/tools/format/inspection-format.d.ts.map +0 -1
- package/dist/tools/format/inspection-format.js +0 -164
- package/dist/tools/format/inspection-format.js.map +0 -1
- package/dist/tools/format/pages-format.d.ts +0 -42
- package/dist/tools/format/pages-format.d.ts.map +0 -1
- package/dist/tools/format/pages-format.js +0 -113
- package/dist/tools/format/pages-format.js.map +0 -1
- package/dist/tools/format/sources-format.d.ts +0 -25
- package/dist/tools/format/sources-format.d.ts.map +0 -1
- package/dist/tools/format/sources-format.js +0 -208
- package/dist/tools/format/sources-format.js.map +0 -1
- package/dist/tools/health.d.ts +0 -22
- package/dist/tools/health.d.ts.map +0 -1
- package/dist/tools/health.js +0 -147
- package/dist/tools/health.js.map +0 -1
- package/dist/tools/index.d.ts +0 -23
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -25
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/inspection.d.ts +0 -14
- package/dist/tools/inspection.d.ts.map +0 -1
- package/dist/tools/inspection.js +0 -125
- package/dist/tools/inspection.js.map +0 -1
- package/dist/tools/layout-flatten.d.ts +0 -75
- package/dist/tools/layout-flatten.d.ts.map +0 -1
- package/dist/tools/layout-flatten.js +0 -107
- package/dist/tools/layout-flatten.js.map +0 -1
- package/dist/tools/multi-items/builders.d.ts +0 -23
- package/dist/tools/multi-items/builders.d.ts.map +0 -1
- package/dist/tools/multi-items/builders.js +0 -56
- package/dist/tools/multi-items/builders.js.map +0 -1
- package/dist/tools/multi-items/clean-implode-handler.d.ts +0 -28
- package/dist/tools/multi-items/clean-implode-handler.d.ts.map +0 -1
- package/dist/tools/multi-items/clean-implode-handler.js +0 -40
- package/dist/tools/multi-items/clean-implode-handler.js.map +0 -1
- package/dist/tools/multi-items/index.d.ts +0 -18
- package/dist/tools/multi-items/index.d.ts.map +0 -1
- package/dist/tools/multi-items/index.js +0 -18
- package/dist/tools/multi-items/index.js.map +0 -1
- package/dist/tools/multi-items/inspect-handler.d.ts +0 -41
- package/dist/tools/multi-items/inspect-handler.d.ts.map +0 -1
- package/dist/tools/multi-items/inspect-handler.js +0 -50
- package/dist/tools/multi-items/inspect-handler.js.map +0 -1
- package/dist/tools/multi-items/item-container-map.d.ts +0 -41
- package/dist/tools/multi-items/item-container-map.d.ts.map +0 -1
- package/dist/tools/multi-items/item-container-map.js +0 -73
- package/dist/tools/multi-items/item-container-map.js.map +0 -1
- package/dist/tools/pages/builders.d.ts +0 -14
- package/dist/tools/pages/builders.d.ts.map +0 -1
- package/dist/tools/pages/builders.js +0 -115
- package/dist/tools/pages/builders.js.map +0 -1
- package/dist/tools/pages/handlers-read.d.ts +0 -33
- package/dist/tools/pages/handlers-read.d.ts.map +0 -1
- package/dist/tools/pages/handlers-read.js +0 -161
- package/dist/tools/pages/handlers-read.js.map +0 -1
- package/dist/tools/pages/handlers-write.d.ts +0 -21
- package/dist/tools/pages/handlers-write.d.ts.map +0 -1
- package/dist/tools/pages/handlers-write.js +0 -52
- package/dist/tools/pages/handlers-write.js.map +0 -1
- package/dist/tools/pages/index.d.ts +0 -17
- package/dist/tools/pages/index.d.ts.map +0 -1
- package/dist/tools/pages/index.js +0 -17
- package/dist/tools/pages/index.js.map +0 -1
- package/dist/tools/pages/schemas.d.ts +0 -30
- package/dist/tools/pages/schemas.d.ts.map +0 -1
- package/dist/tools/pages/schemas.js +0 -30
- package/dist/tools/pages/schemas.js.map +0 -1
- package/dist/tools/pages.d.ts +0 -13
- package/dist/tools/pages.d.ts.map +0 -1
- package/dist/tools/pages.js +0 -13
- package/dist/tools/pages.js.map +0 -1
- package/dist/tools/progress-phases.d.ts +0 -46
- package/dist/tools/progress-phases.d.ts.map +0 -1
- package/dist/tools/progress-phases.js +0 -48
- package/dist/tools/progress-phases.js.map +0 -1
- package/dist/tools/shared-schemas.d.ts +0 -15
- package/dist/tools/shared-schemas.d.ts.map +0 -1
- package/dist/tools/shared-schemas.js +0 -30
- package/dist/tools/shared-schemas.js.map +0 -1
- package/dist/tools/sources/builders.d.ts +0 -13
- package/dist/tools/sources/builders.d.ts.map +0 -1
- package/dist/tools/sources/builders.js +0 -103
- package/dist/tools/sources/builders.js.map +0 -1
- package/dist/tools/sources/handlers-bind.d.ts +0 -28
- package/dist/tools/sources/handlers-bind.d.ts.map +0 -1
- package/dist/tools/sources/handlers-bind.js +0 -129
- package/dist/tools/sources/handlers-bind.js.map +0 -1
- package/dist/tools/sources/handlers.d.ts +0 -45
- package/dist/tools/sources/handlers.d.ts.map +0 -1
- package/dist/tools/sources/handlers.js +0 -91
- package/dist/tools/sources/handlers.js.map +0 -1
- package/dist/tools/sources/index.d.ts +0 -19
- package/dist/tools/sources/index.d.ts.map +0 -1
- package/dist/tools/sources/index.js +0 -18
- package/dist/tools/sources/index.js.map +0 -1
- package/dist/tools/sources.d.ts +0 -14
- package/dist/tools/sources.d.ts.map +0 -1
- package/dist/tools/sources.js +0 -14
- package/dist/tools/sources.js.map +0 -1
- package/dist/tools/sparse-fields.d.ts +0 -80
- package/dist/tools/sparse-fields.d.ts.map +0 -1
- package/dist/tools/sparse-fields.js +0 -144
- package/dist/tools/sparse-fields.js.map +0 -1
- package/dist/tools/tool-builder/annotations.d.ts +0 -55
- package/dist/tools/tool-builder/annotations.d.ts.map +0 -1
- package/dist/tools/tool-builder/annotations.js +0 -86
- package/dist/tools/tool-builder/annotations.js.map +0 -1
- package/dist/tools/tool-builder/define.d.ts +0 -31
- package/dist/tools/tool-builder/define.d.ts.map +0 -1
- package/dist/tools/tool-builder/define.js +0 -31
- package/dist/tools/tool-builder/define.js.map +0 -1
- package/dist/tools/tool-builder/index.d.ts +0 -28
- package/dist/tools/tool-builder/index.d.ts.map +0 -1
- package/dist/tools/tool-builder/index.js +0 -27
- package/dist/tools/tool-builder/index.js.map +0 -1
- package/dist/tools/tool-builder/results.d.ts +0 -59
- package/dist/tools/tool-builder/results.d.ts.map +0 -1
- package/dist/tools/tool-builder/results.js +0 -125
- package/dist/tools/tool-builder/results.js.map +0 -1
- package/dist/tools/tool-builder/types.d.ts +0 -82
- package/dist/tools/tool-builder/types.d.ts.map +0 -1
- package/dist/tools/tool-builder/types.js +0 -9
- package/dist/tools/tool-builder/types.js.map +0 -1
- package/dist/tools/tool-builder.d.ts +0 -16
- package/dist/tools/tool-builder.d.ts.map +0 -1
- package/dist/tools/tool-builder.js +0 -16
- package/dist/tools/tool-builder.js.map +0 -1
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Inspection format-sidecar — pure transforms for `element_types_list` (table)
|
|
3
|
-
* and `element_type_get_schema` (detail). Wave G.2.9 (Design §3.2 rows 11 / 12).
|
|
4
|
-
*
|
|
5
|
-
* These functions are stateless. The handlers themselves are tested separately
|
|
6
|
-
* in `tests/tools/inspection.test.ts` (shape pins on the REST URL).
|
|
7
|
-
*
|
|
8
|
-
* @license MIT
|
|
9
|
-
*/
|
|
10
|
-
import type { DetailGroup, TableColumn } from '@getimo/mcp-toolkit';
|
|
11
|
-
/** Full columns for `yootheme_builder_element_types_list`. */
|
|
12
|
-
export declare const TYPES_TABLE_COLUMNS: readonly TableColumn[];
|
|
13
|
-
/** Compact columns kick in at 21+ rows — drop the boolean. */
|
|
14
|
-
export declare const TYPES_COMPACT_COLUMNS: readonly TableColumn[];
|
|
15
|
-
export interface TypeRow {
|
|
16
|
-
name: string;
|
|
17
|
-
label: string;
|
|
18
|
-
origin: string;
|
|
19
|
-
has_children_support: boolean;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Maps an `/element-types` row to the table shape.
|
|
23
|
-
*
|
|
24
|
-
* - `has_children_support` honours an explicit boolean (the canonical
|
|
25
|
-
* column key on the MCP-TS side). The PHP REST envelope surfaces both
|
|
26
|
-
* `has_children` (its canonical key) AND `has_children_support` (this
|
|
27
|
-
* alias) for every row — accept either to ride out a deploy skew where
|
|
28
|
-
* the wp-plugin and npm-package versions are temporarily out of step.
|
|
29
|
-
* Maria-Audit Stream C2 F-03 v2 (2026-05-22).
|
|
30
|
-
* - Falls back to presence of a `children` field on the type definition.
|
|
31
|
-
* - Missing fields default to empty.
|
|
32
|
-
*/
|
|
33
|
-
export declare function mapTypeRow(input: Record<string, unknown>): TypeRow;
|
|
34
|
-
/**
|
|
35
|
-
* The REST plugin exposes element types in one of three shapes:
|
|
36
|
-
*
|
|
37
|
-
* 1. F-03 v2 (current — Maria-Audit Stream C2 2026-05-22): wrapper object
|
|
38
|
-
* `{items: [{name, label, origin, has_children, has_children_support,
|
|
39
|
-
* …}], total, element_types: [<string>, …]}`. This is the richest
|
|
40
|
-
* shape and the only one carrying label/origin/has_children — prefer
|
|
41
|
-
* it always.
|
|
42
|
-
* 2. Legacy F-03 v1: wrapper object `{element_types: [<string>, …]}`
|
|
43
|
-
* with name-only entries (older WP-plugin versions). Used as the
|
|
44
|
-
* back-compat fallback when `items` is absent.
|
|
45
|
-
* 3. Flat array of `{name, …}` objects — never seen on the live
|
|
46
|
-
* yt-builder-mcp REST but kept for paranoia.
|
|
47
|
-
*/
|
|
48
|
-
export declare function flattenTypesPayload(payload: unknown): Record<string, unknown>[];
|
|
49
|
-
export declare function buildTypeSchemaDetail(payload: {
|
|
50
|
-
name: string;
|
|
51
|
-
label?: string;
|
|
52
|
-
origin?: string;
|
|
53
|
-
fields?: unknown;
|
|
54
|
-
}): {
|
|
55
|
-
groups: DetailGroup[];
|
|
56
|
-
title?: string;
|
|
57
|
-
};
|
|
58
|
-
//# sourceMappingURL=inspection-format.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inspection-format.d.ts","sourceRoot":"","sources":["../../../src/tools/format/inspection-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIpE,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,EAAE,SAAS,WAAW,EAKrD,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,EAAE,SAAS,WAAW,EAIvD,CAAC;AAYF,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAkBlE;AAUD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAkB/E;AAkCD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAyB5C"}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Inspection format-sidecar — pure transforms for `element_types_list` (table)
|
|
3
|
-
* and `element_type_get_schema` (detail). Wave G.2.9 (Design §3.2 rows 11 / 12).
|
|
4
|
-
*
|
|
5
|
-
* These functions are stateless. The handlers themselves are tested separately
|
|
6
|
-
* in `tests/tools/inspection.test.ts` (shape pins on the REST URL).
|
|
7
|
-
*
|
|
8
|
-
* @license MIT
|
|
9
|
-
*/
|
|
10
|
-
// ─── element_types_list columns (Design §3.2 row 11) ─────────────────
|
|
11
|
-
/** Full columns for `yootheme_builder_element_types_list`. */
|
|
12
|
-
export const TYPES_TABLE_COLUMNS = [
|
|
13
|
-
{ key: 'name', label: 'NAME', width: 24, llmOnly: true },
|
|
14
|
-
{ key: 'label', label: 'LABEL', width: 28 },
|
|
15
|
-
{ key: 'origin', label: 'ORIGIN', width: 14 },
|
|
16
|
-
{ key: 'has_children_support', label: 'CHILDREN', width: 10 },
|
|
17
|
-
];
|
|
18
|
-
/** Compact columns kick in at 21+ rows — drop the boolean. */
|
|
19
|
-
export const TYPES_COMPACT_COLUMNS = [
|
|
20
|
-
{ key: 'name', label: 'NAME', width: 24, llmOnly: true },
|
|
21
|
-
{ key: 'label', label: 'LABEL', width: 28 },
|
|
22
|
-
{ key: 'origin', label: 'ORIGIN', width: 14 },
|
|
23
|
-
];
|
|
24
|
-
// ─── Row mapper ──────────────────────────────────────────────────────
|
|
25
|
-
function asString(v) {
|
|
26
|
-
return typeof v === 'string' ? v : '';
|
|
27
|
-
}
|
|
28
|
-
function asBool(v) {
|
|
29
|
-
return v === true;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Maps an `/element-types` row to the table shape.
|
|
33
|
-
*
|
|
34
|
-
* - `has_children_support` honours an explicit boolean (the canonical
|
|
35
|
-
* column key on the MCP-TS side). The PHP REST envelope surfaces both
|
|
36
|
-
* `has_children` (its canonical key) AND `has_children_support` (this
|
|
37
|
-
* alias) for every row — accept either to ride out a deploy skew where
|
|
38
|
-
* the wp-plugin and npm-package versions are temporarily out of step.
|
|
39
|
-
* Maria-Audit Stream C2 F-03 v2 (2026-05-22).
|
|
40
|
-
* - Falls back to presence of a `children` field on the type definition.
|
|
41
|
-
* - Missing fields default to empty.
|
|
42
|
-
*/
|
|
43
|
-
export function mapTypeRow(input) {
|
|
44
|
-
let explicitChildren;
|
|
45
|
-
if (typeof input.has_children_support === 'boolean') {
|
|
46
|
-
explicitChildren = input.has_children_support;
|
|
47
|
-
}
|
|
48
|
-
else if (typeof input.has_children === 'boolean') {
|
|
49
|
-
// F-03 v2: PHP wire-shape uses `has_children`; older wp-plugins
|
|
50
|
-
// may surface only this key. MCP-TS keeps `has_children_support`
|
|
51
|
-
// as the canonical column-key but accepts the PHP-side spelling.
|
|
52
|
-
explicitChildren = input.has_children;
|
|
53
|
-
}
|
|
54
|
-
return {
|
|
55
|
-
name: asString(input.name),
|
|
56
|
-
label: asString(input.label),
|
|
57
|
-
origin: asString(input.origin),
|
|
58
|
-
has_children_support: explicitChildren ?? hasChildrenField(input.children),
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
function hasChildrenField(v) {
|
|
62
|
-
if (Array.isArray(v))
|
|
63
|
-
return v.length > 0;
|
|
64
|
-
if (v !== null && typeof v === 'object') {
|
|
65
|
-
return Object.keys(v).length > 0;
|
|
66
|
-
}
|
|
67
|
-
return asBool(v);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* The REST plugin exposes element types in one of three shapes:
|
|
71
|
-
*
|
|
72
|
-
* 1. F-03 v2 (current — Maria-Audit Stream C2 2026-05-22): wrapper object
|
|
73
|
-
* `{items: [{name, label, origin, has_children, has_children_support,
|
|
74
|
-
* …}], total, element_types: [<string>, …]}`. This is the richest
|
|
75
|
-
* shape and the only one carrying label/origin/has_children — prefer
|
|
76
|
-
* it always.
|
|
77
|
-
* 2. Legacy F-03 v1: wrapper object `{element_types: [<string>, …]}`
|
|
78
|
-
* with name-only entries (older WP-plugin versions). Used as the
|
|
79
|
-
* back-compat fallback when `items` is absent.
|
|
80
|
-
* 3. Flat array of `{name, …}` objects — never seen on the live
|
|
81
|
-
* yt-builder-mcp REST but kept for paranoia.
|
|
82
|
-
*/
|
|
83
|
-
export function flattenTypesPayload(payload) {
|
|
84
|
-
if (Array.isArray(payload)) {
|
|
85
|
-
return payload.map(normalizeTypeEntry).filter((x) => x !== null);
|
|
86
|
-
}
|
|
87
|
-
if (payload !== null && typeof payload === 'object') {
|
|
88
|
-
const obj = payload;
|
|
89
|
-
// F-03 v2 preferred shape: `items[]` carries the full row.
|
|
90
|
-
// Reading from `element_types` (plain string list) drops every
|
|
91
|
-
// label/origin/has_children value before mapTypeRow ever sees
|
|
92
|
-
// them, which is the root-cause of the audit-finding.
|
|
93
|
-
if (Array.isArray(obj.items)) {
|
|
94
|
-
return obj.items.map(normalizeTypeEntry).filter((x) => x !== null);
|
|
95
|
-
}
|
|
96
|
-
if (Array.isArray(obj.element_types)) {
|
|
97
|
-
return obj.element_types.map(normalizeTypeEntry).filter((x) => x !== null);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return [];
|
|
101
|
-
}
|
|
102
|
-
function normalizeTypeEntry(entry) {
|
|
103
|
-
if (typeof entry === 'string')
|
|
104
|
-
return { name: entry };
|
|
105
|
-
if (entry !== null && typeof entry === 'object')
|
|
106
|
-
return entry;
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
// ─── Detail builder (Design §3.2 row 12) ─────────────────────────────
|
|
110
|
-
function summarizeFieldKeys(fields) {
|
|
111
|
-
if (fields === null || typeof fields !== 'object')
|
|
112
|
-
return '—';
|
|
113
|
-
// `fields` is a list of {name,…} descriptors (canonical REST shape);
|
|
114
|
-
// a plain record is also tolerated for back-compat.
|
|
115
|
-
const keys = Array.isArray(fields)
|
|
116
|
-
? fields.map((f) => {
|
|
117
|
-
if (f !== null && typeof f === 'object') {
|
|
118
|
-
const n = f.name;
|
|
119
|
-
if (typeof n === 'string')
|
|
120
|
-
return n;
|
|
121
|
-
}
|
|
122
|
-
return '?';
|
|
123
|
-
})
|
|
124
|
-
: Object.keys(fields);
|
|
125
|
-
if (keys.length === 0)
|
|
126
|
-
return '—';
|
|
127
|
-
if (keys.length <= 8)
|
|
128
|
-
return keys.join(', ');
|
|
129
|
-
return `${keys.slice(0, 8).join(', ')}, …(+${String(keys.length - 8)} more)`;
|
|
130
|
-
}
|
|
131
|
-
function countFields(fields) {
|
|
132
|
-
if (fields === null || typeof fields !== 'object')
|
|
133
|
-
return 0;
|
|
134
|
-
if (Array.isArray(fields))
|
|
135
|
-
return fields.length;
|
|
136
|
-
return Object.keys(fields).length;
|
|
137
|
-
}
|
|
138
|
-
export function buildTypeSchemaDetail(payload) {
|
|
139
|
-
return {
|
|
140
|
-
title: `Element type: ${payload.name}`,
|
|
141
|
-
groups: [
|
|
142
|
-
{
|
|
143
|
-
label: 'Identity',
|
|
144
|
-
entries: [
|
|
145
|
-
{ key: 'name', label: 'Name', value: payload.name, format: 'code', copyable: true },
|
|
146
|
-
...(typeof payload.label === 'string' && payload.label.length > 0
|
|
147
|
-
? [{ key: 'label', label: 'Label', value: payload.label }]
|
|
148
|
-
: []),
|
|
149
|
-
...(typeof payload.origin === 'string' && payload.origin.length > 0
|
|
150
|
-
? [{ key: 'origin', label: 'Origin', value: payload.origin, format: 'badge' }]
|
|
151
|
-
: []),
|
|
152
|
-
],
|
|
153
|
-
},
|
|
154
|
-
{
|
|
155
|
-
label: 'Fields (summary)',
|
|
156
|
-
entries: [
|
|
157
|
-
{ key: 'count', label: 'Count', value: countFields(payload.fields), format: 'text' },
|
|
158
|
-
{ key: 'keys', label: 'Keys', value: summarizeFieldKeys(payload.fields) },
|
|
159
|
-
],
|
|
160
|
-
},
|
|
161
|
-
],
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
//# sourceMappingURL=inspection-format.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inspection-format.js","sourceRoot":"","sources":["../../../src/tools/format/inspection-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,wEAAwE;AAExE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACvD,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IACxD,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3C,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC7C,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;CAChE,CAAC;AAEF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IACzD,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IACxD,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3C,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;CAChD,CAAC;AAEF,wEAAwE;AAExE,SAAS,QAAQ,CAAC,CAAU;IACxB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,MAAM,CAAC,CAAU;IACtB,OAAO,CAAC,KAAK,IAAI,CAAC;AACtB,CAAC;AASD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,UAAU,CAAC,KAA8B;IACrD,IAAI,gBAAqC,CAAC;IAC1C,IAAI,OAAO,KAAK,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QAClD,gBAAgB,GAAG,KAAK,CAAC,oBAAoB,CAAC;IAClD,CAAC;SAAM,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACjD,gEAAgE;QAChE,iEAAiE;QACjE,iEAAiE;QACjE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED,OAAO;QACH,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9B,oBAAoB,EAChB,gBAAgB,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC3D,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAU;IAChC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,IAAI,CAAC,CAA4B,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAgC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,OAAkC,CAAC;QAC/C,2DAA2D;QAC3D,+DAA+D;QAC/D,8DAA8D;QAC9D,sDAAsD;QACtD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAgC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACnC,OAAO,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAgC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC7G,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACtD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAgC,CAAC;IACzF,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,wEAAwE;AAExE,SAAS,kBAAkB,CAAC,MAAe;IACvC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAC9D,qEAAqE;IACrE,oDAAoD;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACb,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,CAAC,GAAI,CAA6B,CAAC,IAAI,CAAC;gBAC9C,IAAI,OAAO,CAAC,KAAK,QAAQ;oBAAE,OAAO,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC,CAAC;QACJ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAiC,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAClC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC;AACjF,CAAC;AAED,SAAS,WAAW,CAAC,MAAe;IAChC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC;IAChD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAiC,CAAC,CAAC,MAAM,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAKrC;IACG,OAAO;QACH,KAAK,EAAE,iBAAiB,OAAO,CAAC,IAAI,EAAE;QACtC,MAAM,EAAE;YACJ;gBACI,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE;oBACL,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACnF,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;wBAC7D,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAW,CAAC;wBACnE,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;wBAC/D,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAW,CAAC;wBACvF,CAAC,CAAC,EAAE,CAAC;iBACZ;aACJ;YACD;gBACI,KAAK,EAAE,kBAAkB;gBACzB,OAAO,EAAE;oBACL,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;oBACpF,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;iBAC5E;aACJ;SACJ;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pages format-sidecar — pure transforms for `pages_list`, `page_get_schema`
|
|
3
|
-
* and `get_etag`. Wave G.2.1 (Design §3.2 rows 3 / 5 / 6).
|
|
4
|
-
*
|
|
5
|
-
* These functions are stateless and free of REST-client concerns so the
|
|
6
|
-
* handlers stay tiny and so the shape is asserted in unit tests
|
|
7
|
-
* (`tests/tools/format/pages-format.test.ts`) and shape-pin tests
|
|
8
|
-
* (`tests/wave-shape-pin.test.ts`).
|
|
9
|
-
*
|
|
10
|
-
* @license MIT
|
|
11
|
-
*/
|
|
12
|
-
import type { DetailGroup, TableColumn } from '@getimo/mcp-toolkit';
|
|
13
|
-
/** Full columns for `pages_list`. */
|
|
14
|
-
export declare const PAGES_TABLE_COLUMNS: readonly TableColumn[];
|
|
15
|
-
/** Compact columns kick in at 21+ rows; drops `modified_at` + `type`. */
|
|
16
|
-
export declare const PAGES_COMPACT_COLUMNS: readonly TableColumn[];
|
|
17
|
-
export declare const SCHEMA_TABLE_COLUMNS: readonly TableColumn[];
|
|
18
|
-
/**
|
|
19
|
-
* Compact columns for `page_get_schema`. Real-world templates routinely
|
|
20
|
-
* exceed 21 nodes (a typical home-page has 30–150 elements; landing pages
|
|
21
|
-
* reach 300+), so the handler ALWAYS uses these compact columns via the
|
|
22
|
-
* `detailOverride: 'compact'` argument to `tableResult` (toolkit's
|
|
23
|
-
* `resolveDetailLevel` short-circuits when given a direct level).
|
|
24
|
-
*/
|
|
25
|
-
export declare const SCHEMA_COMPACT_COLUMNS: readonly TableColumn[];
|
|
26
|
-
/** Maps an `/pages` element to the table row shape. Missing fields default to empty.
|
|
27
|
-
* REST returns `name` (YOOtheme's internal field name); we surface it as `label`
|
|
28
|
-
* for LLM-friendly schemas. The legacy `label` fallback is for forward-compat
|
|
29
|
-
* if the backend ever switches naming. */
|
|
30
|
-
export declare function mapPageRow(input: Record<string, unknown>): Record<string, unknown>;
|
|
31
|
-
/** Maps a `/pages/{id}/schema` node to the table row shape. */
|
|
32
|
-
export declare function mapSchemaNodeRow(input: Record<string, unknown>): Record<string, unknown>;
|
|
33
|
-
/** Builds schema rows from the array returned by the REST `nodes` field. */
|
|
34
|
-
export declare function buildSchemaRows(nodes: ReadonlyArray<Record<string, unknown>>): Record<string, unknown>[];
|
|
35
|
-
/** Build the `detailResult` body for `get_etag`. Two groups: identity + freshness. */
|
|
36
|
-
export declare function buildEtagDetail(payload: {
|
|
37
|
-
etag: string;
|
|
38
|
-
generated_at?: string;
|
|
39
|
-
}): {
|
|
40
|
-
groups: DetailGroup[];
|
|
41
|
-
};
|
|
42
|
-
//# sourceMappingURL=pages-format.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pages-format.d.ts","sourceRoot":"","sources":["../../../src/tools/format/pages-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIpE,qCAAqC;AACrC,eAAO,MAAM,mBAAmB,EAAE,SAAS,WAAW,EAMrD,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,EAAE,SAAS,WAAW,EAIvD,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,SAAS,WAAW,EAKtD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,WAAW,EAIxD,CAAC;AAgBF;;;2CAG2C;AAC3C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQlF;AAED,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOxF;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAC3B,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC9C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAE3B;AAID,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG;IAAE,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CA4B5B"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pages format-sidecar — pure transforms for `pages_list`, `page_get_schema`
|
|
3
|
-
* and `get_etag`. Wave G.2.1 (Design §3.2 rows 3 / 5 / 6).
|
|
4
|
-
*
|
|
5
|
-
* These functions are stateless and free of REST-client concerns so the
|
|
6
|
-
* handlers stay tiny and so the shape is asserted in unit tests
|
|
7
|
-
* (`tests/tools/format/pages-format.test.ts`) and shape-pin tests
|
|
8
|
-
* (`tests/wave-shape-pin.test.ts`).
|
|
9
|
-
*
|
|
10
|
-
* @license MIT
|
|
11
|
-
*/
|
|
12
|
-
// ─── Pages list columns (Design §3.2 row 3) ──────────────────────────
|
|
13
|
-
/** Full columns for `pages_list`. */
|
|
14
|
-
export const PAGES_TABLE_COLUMNS = [
|
|
15
|
-
{ key: 'id', label: 'ID', width: 36, llmOnly: true },
|
|
16
|
-
{ key: 'label', label: 'NAME', width: 28 },
|
|
17
|
-
{ key: 'type', label: 'TYPE', width: 12 },
|
|
18
|
-
{ key: 'elements_count', label: '#EL', width: 8, align: 'right' },
|
|
19
|
-
{ key: 'modified_at', label: 'MODIFIED', width: 20 },
|
|
20
|
-
];
|
|
21
|
-
/** Compact columns kick in at 21+ rows; drops `modified_at` + `type`. */
|
|
22
|
-
export const PAGES_COMPACT_COLUMNS = [
|
|
23
|
-
{ key: 'id', label: 'ID', width: 36, llmOnly: true },
|
|
24
|
-
{ key: 'label', label: 'NAME', width: 28 },
|
|
25
|
-
{ key: 'elements_count', label: '#EL', width: 8, align: 'right' },
|
|
26
|
-
];
|
|
27
|
-
// ─── Schema columns (Design §3.2 row 5 — always-compact override) ────
|
|
28
|
-
export const SCHEMA_TABLE_COLUMNS = [
|
|
29
|
-
{ key: 'path', label: 'PATH', width: 32, llmOnly: true },
|
|
30
|
-
{ key: 'element_type', label: 'TYPE', width: 16 },
|
|
31
|
-
{ key: 'label', label: 'LABEL', width: 28 },
|
|
32
|
-
{ key: 'has_binding', label: 'BIND', width: 8 },
|
|
33
|
-
];
|
|
34
|
-
/**
|
|
35
|
-
* Compact columns for `page_get_schema`. Real-world templates routinely
|
|
36
|
-
* exceed 21 nodes (a typical home-page has 30–150 elements; landing pages
|
|
37
|
-
* reach 300+), so the handler ALWAYS uses these compact columns via the
|
|
38
|
-
* `detailOverride: 'compact'` argument to `tableResult` (toolkit's
|
|
39
|
-
* `resolveDetailLevel` short-circuits when given a direct level).
|
|
40
|
-
*/
|
|
41
|
-
export const SCHEMA_COMPACT_COLUMNS = [
|
|
42
|
-
{ key: 'path', label: 'PATH', width: 32, llmOnly: true },
|
|
43
|
-
{ key: 'element_type', label: 'TYPE', width: 16 },
|
|
44
|
-
{ key: 'label', label: 'LABEL', width: 28 },
|
|
45
|
-
];
|
|
46
|
-
// ─── Row mappers ─────────────────────────────────────────────────────
|
|
47
|
-
function asString(v) {
|
|
48
|
-
return typeof v === 'string' ? v : '';
|
|
49
|
-
}
|
|
50
|
-
function asInt(v) {
|
|
51
|
-
return typeof v === 'number' && Number.isFinite(v) ? Math.trunc(v) : 0;
|
|
52
|
-
}
|
|
53
|
-
function asBool(v) {
|
|
54
|
-
return v === true;
|
|
55
|
-
}
|
|
56
|
-
/** Maps an `/pages` element to the table row shape. Missing fields default to empty.
|
|
57
|
-
* REST returns `name` (YOOtheme's internal field name); we surface it as `label`
|
|
58
|
-
* for LLM-friendly schemas. The legacy `label` fallback is for forward-compat
|
|
59
|
-
* if the backend ever switches naming. */
|
|
60
|
-
export function mapPageRow(input) {
|
|
61
|
-
return {
|
|
62
|
-
id: asString(input.id),
|
|
63
|
-
label: asString(input.name ?? input.label),
|
|
64
|
-
type: asString(input.type),
|
|
65
|
-
elements_count: asInt(input.elements_count),
|
|
66
|
-
modified_at: asString(input.modified_at),
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
/** Maps a `/pages/{id}/schema` node to the table row shape. */
|
|
70
|
-
export function mapSchemaNodeRow(input) {
|
|
71
|
-
return {
|
|
72
|
-
path: asString(input.path),
|
|
73
|
-
element_type: asString(input.element_type),
|
|
74
|
-
label: asString(input.label),
|
|
75
|
-
has_binding: asBool(input.has_binding),
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
/** Builds schema rows from the array returned by the REST `nodes` field. */
|
|
79
|
-
export function buildSchemaRows(nodes) {
|
|
80
|
-
return nodes.map(mapSchemaNodeRow);
|
|
81
|
-
}
|
|
82
|
-
// ─── Detail builders ─────────────────────────────────────────────────
|
|
83
|
-
/** Build the `detailResult` body for `get_etag`. Two groups: identity + freshness. */
|
|
84
|
-
export function buildEtagDetail(payload) {
|
|
85
|
-
return {
|
|
86
|
-
groups: [
|
|
87
|
-
{
|
|
88
|
-
label: 'Identity',
|
|
89
|
-
entries: [
|
|
90
|
-
{
|
|
91
|
-
key: 'etag',
|
|
92
|
-
label: 'ETag',
|
|
93
|
-
value: payload.etag,
|
|
94
|
-
format: 'code',
|
|
95
|
-
copyable: true,
|
|
96
|
-
},
|
|
97
|
-
],
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
label: 'Freshness',
|
|
101
|
-
entries: [
|
|
102
|
-
{
|
|
103
|
-
key: 'generated_at',
|
|
104
|
-
label: 'Generated',
|
|
105
|
-
value: payload.generated_at ?? null,
|
|
106
|
-
format: 'date',
|
|
107
|
-
},
|
|
108
|
-
],
|
|
109
|
-
},
|
|
110
|
-
],
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=pages-format.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pages-format.js","sourceRoot":"","sources":["../../../src/tools/format/pages-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sources format-sidecar — pure transforms for `sources_list` (table) and
|
|
3
|
-
* `element_get_binding` (detail). Wave G.2.7 (Design §3.2 rows 16 / 17).
|
|
4
|
-
*
|
|
5
|
-
* @license MIT
|
|
6
|
-
*/
|
|
7
|
-
import type { DetailGroup, TableColumn } from '@getimo/mcp-toolkit';
|
|
8
|
-
export declare const SOURCES_TABLE_COLUMNS: readonly TableColumn[];
|
|
9
|
-
export interface SourceRow {
|
|
10
|
-
name: string;
|
|
11
|
-
label: string;
|
|
12
|
-
origin: string;
|
|
13
|
-
kind: string;
|
|
14
|
-
}
|
|
15
|
-
export declare function mapSourceRow(input: Record<string, unknown>): SourceRow;
|
|
16
|
-
export declare function flattenSourcesPayload(payload: unknown): Record<string, unknown>[];
|
|
17
|
-
export declare function buildBindingDetail(payload: {
|
|
18
|
-
template_id: string;
|
|
19
|
-
element_path: string;
|
|
20
|
-
binding: Record<string, unknown>;
|
|
21
|
-
}): {
|
|
22
|
-
groups: DetailGroup[];
|
|
23
|
-
title?: string;
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=sources-format.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sources-format.d.ts","sourceRoot":"","sources":["../../../src/tools/format/sources-format.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIpE,eAAO,MAAM,qBAAqB,EAAE,SAAS,WAAW,EAKvD,CAAC;AAQF,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAYtE;AAWD,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,OAAO,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAqB3B;AAsED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GAAG;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAgG5C"}
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sources format-sidecar — pure transforms for `sources_list` (table) and
|
|
3
|
-
* `element_get_binding` (detail). Wave G.2.7 (Design §3.2 rows 16 / 17).
|
|
4
|
-
*
|
|
5
|
-
* @license MIT
|
|
6
|
-
*/
|
|
7
|
-
// ─── sources_list columns (Design §3.2 row 16) ───────────────────────
|
|
8
|
-
export const SOURCES_TABLE_COLUMNS = [
|
|
9
|
-
{ key: 'name', label: 'NAME', width: 36, llmOnly: true },
|
|
10
|
-
{ key: 'label', label: 'LABEL', width: 28 },
|
|
11
|
-
{ key: 'origin', label: 'ORIGIN', width: 12 },
|
|
12
|
-
{ key: 'kind', label: 'KIND', width: 10 },
|
|
13
|
-
];
|
|
14
|
-
// ─── Row mapper ──────────────────────────────────────────────────────
|
|
15
|
-
function asString(v) {
|
|
16
|
-
return typeof v === 'string' ? v : '';
|
|
17
|
-
}
|
|
18
|
-
export function mapSourceRow(input) {
|
|
19
|
-
return {
|
|
20
|
-
name: asString(input.name),
|
|
21
|
-
label: asString(input.label),
|
|
22
|
-
origin: asString(input.origin),
|
|
23
|
-
// F-04 Kleinkram (Audit v2): BE returns `type` (GraphQL type name
|
|
24
|
-
// from the YT source-provider), not `kind`. Fall back so the
|
|
25
|
-
// column populates without needing a BE rename.
|
|
26
|
-
kind: asString(input.kind !== undefined && input.kind !== '' ? input.kind : input.type),
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* The REST plugin exposes sources EITHER as a grouped object
|
|
31
|
-
* `{apimapper:[…], wordpress:[…], essentials:[…]}` OR (post-refactor)
|
|
32
|
-
* as a flat array of `{name, label, origin, kind}`. This helper
|
|
33
|
-
* normalises both into a flat array — flattening adds `origin` from the
|
|
34
|
-
* group key when absent.
|
|
35
|
-
*/
|
|
36
|
-
const KNOWN_ORIGINS = ['apimapper', 'wordpress', 'essentials'];
|
|
37
|
-
export function flattenSourcesPayload(payload) {
|
|
38
|
-
if (Array.isArray(payload)) {
|
|
39
|
-
return payload.filter((x) => x !== null && typeof x === 'object');
|
|
40
|
-
}
|
|
41
|
-
if (payload !== null && typeof payload === 'object') {
|
|
42
|
-
const out = [];
|
|
43
|
-
const obj = payload;
|
|
44
|
-
for (const origin of KNOWN_ORIGINS) {
|
|
45
|
-
const group = obj[origin];
|
|
46
|
-
if (Array.isArray(group)) {
|
|
47
|
-
for (const item of group) {
|
|
48
|
-
if (item !== null && typeof item === 'object') {
|
|
49
|
-
const rec = item;
|
|
50
|
-
out.push({ origin, ...rec });
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return out;
|
|
56
|
-
}
|
|
57
|
-
return [];
|
|
58
|
-
}
|
|
59
|
-
// ─── Detail builder (Design §3.2 row 17) ─────────────────────────────
|
|
60
|
-
/** Render a primitive binding-value into a DetailEntry-safe scalar. */
|
|
61
|
-
function scalarValue(v) {
|
|
62
|
-
if (v === null || typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean') {
|
|
63
|
-
return v;
|
|
64
|
-
}
|
|
65
|
-
// Objects / arrays (nested filters, directive args) — JSON-flatten so
|
|
66
|
-
// the LLM still sees the structure without an [object Object].
|
|
67
|
-
try {
|
|
68
|
-
return JSON.stringify(v);
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
return String(v);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Normalise the field-mappings carried on the binding response into a
|
|
76
|
-
* `prop → source_field` dict.
|
|
77
|
-
*
|
|
78
|
-
* F-01-Mapping (Audit v4): the REST plugin surfaces field-mappings in
|
|
79
|
-
* TWO shapes — `field_mappings` (dict, back-compat) and
|
|
80
|
-
* `field_mappings_structured` (list of `{element_prop, source_field}`,
|
|
81
|
-
* the BindingSerializer SSoT output). The structured list is preferred
|
|
82
|
-
* because it preserves insertion order and field-level `filters`.
|
|
83
|
-
*/
|
|
84
|
-
function extractFieldMappings(binding) {
|
|
85
|
-
const structured = binding.field_mappings_structured;
|
|
86
|
-
if (Array.isArray(structured)) {
|
|
87
|
-
const out = [];
|
|
88
|
-
for (const entry of structured) {
|
|
89
|
-
if (entry !== null && typeof entry === 'object') {
|
|
90
|
-
const rec = entry;
|
|
91
|
-
const prop = rec.element_prop;
|
|
92
|
-
const field = rec.source_field;
|
|
93
|
-
if (typeof prop === 'string' && prop !== '') {
|
|
94
|
-
out.push({
|
|
95
|
-
prop,
|
|
96
|
-
field: typeof field === 'string' ? field : String(field ?? ''),
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return out;
|
|
102
|
-
}
|
|
103
|
-
const dict = binding.field_mappings;
|
|
104
|
-
if (dict !== null && typeof dict === 'object') {
|
|
105
|
-
return Object.entries(dict).map(([prop, field]) => ({
|
|
106
|
-
prop,
|
|
107
|
-
field: typeof field === 'string' ? field : String(field ?? ''),
|
|
108
|
-
}));
|
|
109
|
-
}
|
|
110
|
-
return [];
|
|
111
|
-
}
|
|
112
|
-
/** Pull `query_arguments` off the binding as a flat record. */
|
|
113
|
-
function extractQueryArguments(binding) {
|
|
114
|
-
const args = binding.query_arguments;
|
|
115
|
-
if (args !== null && typeof args === 'object' && !Array.isArray(args)) {
|
|
116
|
-
return args;
|
|
117
|
-
}
|
|
118
|
-
return {};
|
|
119
|
-
}
|
|
120
|
-
export function buildBindingDetail(payload) {
|
|
121
|
-
const b = payload.binding;
|
|
122
|
-
const sourceName = typeof b.source_name === 'string' ? b.source_name : null;
|
|
123
|
-
const queryField = typeof b.query_field === 'string' ? b.query_field : null;
|
|
124
|
-
const fieldMappings = extractFieldMappings(b);
|
|
125
|
-
const queryArgs = extractQueryArguments(b);
|
|
126
|
-
const argEntries = Object.entries(queryArgs);
|
|
127
|
-
const bindingEntries = [
|
|
128
|
-
{
|
|
129
|
-
key: 'source_name',
|
|
130
|
-
label: 'Source',
|
|
131
|
-
value: sourceName,
|
|
132
|
-
format: 'badge',
|
|
133
|
-
},
|
|
134
|
-
];
|
|
135
|
-
if (queryField !== null) {
|
|
136
|
-
bindingEntries.push({
|
|
137
|
-
key: 'query_field',
|
|
138
|
-
label: 'Query field',
|
|
139
|
-
value: queryField,
|
|
140
|
-
format: 'code',
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
bindingEntries.push({
|
|
144
|
-
key: 'mapping_count',
|
|
145
|
-
label: 'Field mappings',
|
|
146
|
-
value: fieldMappings.length,
|
|
147
|
-
format: 'text',
|
|
148
|
-
}, {
|
|
149
|
-
key: 'arg_count',
|
|
150
|
-
label: 'Query arguments',
|
|
151
|
-
value: argEntries.length,
|
|
152
|
-
format: 'text',
|
|
153
|
-
});
|
|
154
|
-
const groups = [
|
|
155
|
-
{
|
|
156
|
-
label: 'Element',
|
|
157
|
-
entries: [
|
|
158
|
-
{
|
|
159
|
-
key: 'template_id',
|
|
160
|
-
label: 'Template',
|
|
161
|
-
value: payload.template_id,
|
|
162
|
-
format: 'badge',
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
key: 'element_path',
|
|
166
|
-
label: 'Path',
|
|
167
|
-
value: payload.element_path,
|
|
168
|
-
format: 'code',
|
|
169
|
-
copyable: true,
|
|
170
|
-
},
|
|
171
|
-
],
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
label: 'Binding',
|
|
175
|
-
entries: bindingEntries,
|
|
176
|
-
},
|
|
177
|
-
];
|
|
178
|
-
// Field-mapping group — one entry per element-prop → source-field
|
|
179
|
-
// pair so the LLM sees exactly WHICH source field feeds WHICH prop.
|
|
180
|
-
if (fieldMappings.length > 0) {
|
|
181
|
-
groups.push({
|
|
182
|
-
label: 'Field mappings',
|
|
183
|
-
entries: fieldMappings.map((m, i) => ({
|
|
184
|
-
key: `mapping_${String(i)}`,
|
|
185
|
-
label: m.prop,
|
|
186
|
-
value: m.field,
|
|
187
|
-
format: 'code',
|
|
188
|
-
})),
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
// Query-arguments group — the GraphQL `query.field.arguments`.
|
|
192
|
-
if (argEntries.length > 0) {
|
|
193
|
-
groups.push({
|
|
194
|
-
label: 'Query arguments',
|
|
195
|
-
entries: argEntries.map(([key, value], i) => ({
|
|
196
|
-
key: `arg_${String(i)}`,
|
|
197
|
-
label: key,
|
|
198
|
-
value: scalarValue(value),
|
|
199
|
-
format: 'text',
|
|
200
|
-
})),
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
return {
|
|
204
|
-
title: `Binding for ${payload.element_path}`,
|
|
205
|
-
groups,
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
//# sourceMappingURL=sources-format.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sources-format.js","sourceRoot":"","sources":["../../../src/tools/format/sources-format.ts"],"names":[],"mappings":"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"}
|