@wootsup/yt-builder-mcp 0.2.0-alpha.2
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/LICENSE +21 -0
- package/README.md +221 -0
- package/bin/yt-builder-mcp.js +59 -0
- package/dist/auth.d.ts +39 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +93 -0
- package/dist/auth.js.map +1 -0
- package/dist/client.d.ts +84 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +151 -0
- package/dist/client.js.map +1 -0
- package/dist/clients/claude-code.d.ts +18 -0
- package/dist/clients/claude-code.d.ts.map +1 -0
- package/dist/clients/claude-code.js +53 -0
- package/dist/clients/claude-code.js.map +1 -0
- package/dist/clients/claude-desktop.d.ts +19 -0
- package/dist/clients/claude-desktop.d.ts.map +1 -0
- package/dist/clients/claude-desktop.js +56 -0
- package/dist/clients/claude-desktop.js.map +1 -0
- package/dist/clients/cline.d.ts +26 -0
- package/dist/clients/cline.d.ts.map +1 -0
- package/dist/clients/cline.js +80 -0
- package/dist/clients/cline.js.map +1 -0
- package/dist/clients/codex-cli.d.ts +42 -0
- package/dist/clients/codex-cli.d.ts.map +1 -0
- package/dist/clients/codex-cli.js +194 -0
- package/dist/clients/codex-cli.js.map +1 -0
- package/dist/clients/continue.d.ts +13 -0
- package/dist/clients/continue.d.ts.map +1 -0
- package/dist/clients/continue.js +52 -0
- package/dist/clients/continue.js.map +1 -0
- package/dist/clients/cursor.d.ts +12 -0
- package/dist/clients/cursor.d.ts.map +1 -0
- package/dist/clients/cursor.js +38 -0
- package/dist/clients/cursor.js.map +1 -0
- package/dist/clients/gemini-cli.d.ts +18 -0
- package/dist/clients/gemini-cli.d.ts.map +1 -0
- package/dist/clients/gemini-cli.js +44 -0
- package/dist/clients/gemini-cli.js.map +1 -0
- package/dist/clients/home.d.ts +14 -0
- package/dist/clients/home.d.ts.map +1 -0
- package/dist/clients/home.js +20 -0
- package/dist/clients/home.js.map +1 -0
- package/dist/clients/index.d.ts +52 -0
- package/dist/clients/index.d.ts.map +1 -0
- package/dist/clients/index.js +72 -0
- package/dist/clients/index.js.map +1 -0
- package/dist/clients/roo-code.d.ts +23 -0
- package/dist/clients/roo-code.d.ts.map +1 -0
- package/dist/clients/roo-code.js +69 -0
- package/dist/clients/roo-code.js.map +1 -0
- package/dist/clients/zed.d.ts +12 -0
- package/dist/clients/zed.d.ts.map +1 -0
- package/dist/clients/zed.js +41 -0
- package/dist/clients/zed.js.map +1 -0
- package/dist/errors/hints.d.ts +51 -0
- package/dist/errors/hints.d.ts.map +1 -0
- package/dist/errors/hints.js +95 -0
- package/dist/errors/hints.js.map +1 -0
- package/dist/errors/mask.d.ts +35 -0
- package/dist/errors/mask.d.ts.map +1 -0
- package/dist/errors/mask.js +49 -0
- package/dist/errors/mask.js.map +1 -0
- package/dist/errors/sanitize.d.ts +31 -0
- package/dist/errors/sanitize.d.ts.map +1 -0
- package/dist/errors/sanitize.js +90 -0
- package/dist/errors/sanitize.js.map +1 -0
- package/dist/errors.d.ts +42 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +61 -0
- package/dist/errors.js.map +1 -0
- package/dist/gateway/advanced-tool/discovery.d.ts +19 -0
- package/dist/gateway/advanced-tool/discovery.d.ts.map +1 -0
- package/dist/gateway/advanced-tool/discovery.js +53 -0
- package/dist/gateway/advanced-tool/discovery.js.map +1 -0
- package/dist/gateway/advanced-tool/domains.d.ts +42 -0
- package/dist/gateway/advanced-tool/domains.d.ts.map +1 -0
- package/dist/gateway/advanced-tool/domains.js +88 -0
- package/dist/gateway/advanced-tool/domains.js.map +1 -0
- package/dist/gateway/advanced-tool/execute.d.ts +29 -0
- package/dist/gateway/advanced-tool/execute.d.ts.map +1 -0
- package/dist/gateway/advanced-tool/execute.js +54 -0
- package/dist/gateway/advanced-tool/execute.js.map +1 -0
- package/dist/gateway/advanced-tool/index.d.ts +36 -0
- package/dist/gateway/advanced-tool/index.d.ts.map +1 -0
- package/dist/gateway/advanced-tool/index.js +39 -0
- package/dist/gateway/advanced-tool/index.js.map +1 -0
- package/dist/gateway/advanced-tool/register.d.ts +18 -0
- package/dist/gateway/advanced-tool/register.d.ts.map +1 -0
- package/dist/gateway/advanced-tool/register.js +62 -0
- package/dist/gateway/advanced-tool/register.js.map +1 -0
- package/dist/gateway/advanced-tool.d.ts +13 -0
- package/dist/gateway/advanced-tool.d.ts.map +1 -0
- package/dist/gateway/advanced-tool.js +13 -0
- package/dist/gateway/advanced-tool.js.map +1 -0
- package/dist/gateway/capturing-server.d.ts +117 -0
- package/dist/gateway/capturing-server.d.ts.map +1 -0
- package/dist/gateway/capturing-server.js +103 -0
- package/dist/gateway/capturing-server.js.map +1 -0
- package/dist/gateway/essentials.d.ts +49 -0
- package/dist/gateway/essentials.d.ts.map +1 -0
- package/dist/gateway/essentials.js +62 -0
- package/dist/gateway/essentials.js.map +1 -0
- package/dist/gateway/test-support.d.ts +41 -0
- package/dist/gateway/test-support.d.ts.map +1 -0
- package/dist/gateway/test-support.js +60 -0
- package/dist/gateway/test-support.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +77 -0
- package/dist/index.js.map +1 -0
- package/dist/install-skill.d.ts +35 -0
- package/dist/install-skill.d.ts.map +1 -0
- package/dist/install-skill.js +107 -0
- package/dist/install-skill.js.map +1 -0
- package/dist/platform/index.d.ts +49 -0
- package/dist/platform/index.d.ts.map +1 -0
- package/dist/platform/index.js +38 -0
- package/dist/platform/index.js.map +1 -0
- package/dist/server.d.ts +50 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +117 -0
- package/dist/server.js.map +1 -0
- package/dist/setup-cli.d.ts +100 -0
- package/dist/setup-cli.d.ts.map +1 -0
- package/dist/setup-cli.js +355 -0
- package/dist/setup-cli.js.map +1 -0
- package/dist/setup-prompts.d.ts +41 -0
- package/dist/setup-prompts.d.ts.map +1 -0
- package/dist/setup-prompts.js +142 -0
- package/dist/setup-prompts.js.map +1 -0
- package/dist/setup-token.d.ts +38 -0
- package/dist/setup-token.d.ts.map +1 -0
- package/dist/setup-token.js +106 -0
- package/dist/setup-token.js.map +1 -0
- package/dist/setup-wizard-defaults.d.ts +43 -0
- package/dist/setup-wizard-defaults.d.ts.map +1 -0
- package/dist/setup-wizard-defaults.js +160 -0
- package/dist/setup-wizard-defaults.js.map +1 -0
- package/dist/setup-wizard-handshake.d.ts +25 -0
- package/dist/setup-wizard-handshake.d.ts.map +1 -0
- package/dist/setup-wizard-handshake.js +103 -0
- package/dist/setup-wizard-handshake.js.map +1 -0
- package/dist/setup-wizard-types.d.ts +148 -0
- package/dist/setup-wizard-types.d.ts.map +1 -0
- package/dist/setup-wizard-types.js +11 -0
- package/dist/setup-wizard-types.js.map +1 -0
- package/dist/setup-wizard.d.ts +33 -0
- package/dist/setup-wizard.d.ts.map +1 -0
- package/dist/setup-wizard.js +166 -0
- package/dist/setup-wizard.js.map +1 -0
- package/dist/setup.d.ts +17 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +33 -0
- package/dist/setup.js.map +1 -0
- package/dist/tools/elements/builders.d.ts +24 -0
- package/dist/tools/elements/builders.d.ts.map +1 -0
- package/dist/tools/elements/builders.js +150 -0
- package/dist/tools/elements/builders.js.map +1 -0
- package/dist/tools/elements/handlers-write.d.ts +48 -0
- package/dist/tools/elements/handlers-write.d.ts.map +1 -0
- package/dist/tools/elements/handlers-write.js +141 -0
- package/dist/tools/elements/handlers-write.js.map +1 -0
- package/dist/tools/elements/handlers.d.ts +56 -0
- package/dist/tools/elements/handlers.d.ts.map +1 -0
- package/dist/tools/elements/handlers.js +113 -0
- package/dist/tools/elements/handlers.js.map +1 -0
- package/dist/tools/elements/index.d.ts +28 -0
- package/dist/tools/elements/index.d.ts.map +1 -0
- package/dist/tools/elements/index.js +27 -0
- package/dist/tools/elements/index.js.map +1 -0
- package/dist/tools/elements.d.ts +13 -0
- package/dist/tools/elements.d.ts.map +1 -0
- package/dist/tools/elements.js +13 -0
- package/dist/tools/elements.js.map +1 -0
- package/dist/tools/elicitation.d.ts +87 -0
- package/dist/tools/elicitation.d.ts.map +1 -0
- package/dist/tools/elicitation.js +100 -0
- package/dist/tools/elicitation.js.map +1 -0
- package/dist/tools/format/elements-format.d.ts +34 -0
- package/dist/tools/format/elements-format.d.ts.map +1 -0
- package/dist/tools/format/elements-format.js +112 -0
- package/dist/tools/format/elements-format.js.map +1 -0
- package/dist/tools/format/health-format.d.ts +73 -0
- package/dist/tools/format/health-format.d.ts.map +1 -0
- package/dist/tools/format/health-format.js +178 -0
- package/dist/tools/format/health-format.js.map +1 -0
- package/dist/tools/format/inspection-format.d.ts +45 -0
- package/dist/tools/format/inspection-format.d.ts.map +1 -0
- package/dist/tools/format/inspection-format.js +125 -0
- package/dist/tools/format/inspection-format.js.map +1 -0
- package/dist/tools/format/pages-format.d.ts +39 -0
- package/dist/tools/format/pages-format.d.ts.map +1 -0
- package/dist/tools/format/pages-format.js +110 -0
- package/dist/tools/format/pages-format.js.map +1 -0
- package/dist/tools/format/sources-format.d.ts +25 -0
- package/dist/tools/format/sources-format.d.ts.map +1 -0
- package/dist/tools/format/sources-format.js +113 -0
- package/dist/tools/format/sources-format.js.map +1 -0
- package/dist/tools/health.d.ts +22 -0
- package/dist/tools/health.d.ts.map +1 -0
- package/dist/tools/health.js +147 -0
- package/dist/tools/health.js.map +1 -0
- package/dist/tools/index.d.ts +23 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +23 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/inspection.d.ts +14 -0
- package/dist/tools/inspection.d.ts.map +1 -0
- package/dist/tools/inspection.js +115 -0
- package/dist/tools/inspection.js.map +1 -0
- package/dist/tools/layout-flatten.d.ts +63 -0
- package/dist/tools/layout-flatten.d.ts.map +1 -0
- package/dist/tools/layout-flatten.js +95 -0
- package/dist/tools/layout-flatten.js.map +1 -0
- package/dist/tools/pages/builders.d.ts +14 -0
- package/dist/tools/pages/builders.d.ts.map +1 -0
- package/dist/tools/pages/builders.js +97 -0
- package/dist/tools/pages/builders.js.map +1 -0
- package/dist/tools/pages/handlers-read.d.ts +24 -0
- package/dist/tools/pages/handlers-read.d.ts.map +1 -0
- package/dist/tools/pages/handlers-read.js +141 -0
- package/dist/tools/pages/handlers-read.js.map +1 -0
- package/dist/tools/pages/handlers-write.d.ts +21 -0
- package/dist/tools/pages/handlers-write.d.ts.map +1 -0
- package/dist/tools/pages/handlers-write.js +52 -0
- package/dist/tools/pages/handlers-write.js.map +1 -0
- package/dist/tools/pages/index.d.ts +17 -0
- package/dist/tools/pages/index.d.ts.map +1 -0
- package/dist/tools/pages/index.js +17 -0
- package/dist/tools/pages/index.js.map +1 -0
- package/dist/tools/pages/schemas.d.ts +30 -0
- package/dist/tools/pages/schemas.d.ts.map +1 -0
- package/dist/tools/pages/schemas.js +30 -0
- package/dist/tools/pages/schemas.js.map +1 -0
- package/dist/tools/pages.d.ts +13 -0
- package/dist/tools/pages.d.ts.map +1 -0
- package/dist/tools/pages.js +13 -0
- package/dist/tools/pages.js.map +1 -0
- package/dist/tools/progress-phases.d.ts +46 -0
- package/dist/tools/progress-phases.d.ts.map +1 -0
- package/dist/tools/progress-phases.js +48 -0
- package/dist/tools/progress-phases.js.map +1 -0
- package/dist/tools/shared-schemas.d.ts +15 -0
- package/dist/tools/shared-schemas.d.ts.map +1 -0
- package/dist/tools/shared-schemas.js +30 -0
- package/dist/tools/shared-schemas.js.map +1 -0
- package/dist/tools/sources/builders.d.ts +13 -0
- package/dist/tools/sources/builders.d.ts.map +1 -0
- package/dist/tools/sources/builders.js +88 -0
- package/dist/tools/sources/builders.js.map +1 -0
- package/dist/tools/sources/handlers-bind.d.ts +26 -0
- package/dist/tools/sources/handlers-bind.d.ts.map +1 -0
- package/dist/tools/sources/handlers-bind.js +123 -0
- package/dist/tools/sources/handlers-bind.js.map +1 -0
- package/dist/tools/sources/handlers.d.ts +45 -0
- package/dist/tools/sources/handlers.d.ts.map +1 -0
- package/dist/tools/sources/handlers.js +84 -0
- package/dist/tools/sources/handlers.js.map +1 -0
- package/dist/tools/sources/index.d.ts +19 -0
- package/dist/tools/sources/index.d.ts.map +1 -0
- package/dist/tools/sources/index.js +18 -0
- package/dist/tools/sources/index.js.map +1 -0
- package/dist/tools/sources.d.ts +14 -0
- package/dist/tools/sources.d.ts.map +1 -0
- package/dist/tools/sources.js +14 -0
- package/dist/tools/sources.js.map +1 -0
- package/dist/tools/sparse-fields.d.ts +80 -0
- package/dist/tools/sparse-fields.d.ts.map +1 -0
- package/dist/tools/sparse-fields.js +144 -0
- package/dist/tools/sparse-fields.js.map +1 -0
- package/dist/tools/tool-builder/annotations.d.ts +22 -0
- package/dist/tools/tool-builder/annotations.d.ts.map +1 -0
- package/dist/tools/tool-builder/annotations.js +35 -0
- package/dist/tools/tool-builder/annotations.js.map +1 -0
- package/dist/tools/tool-builder/define.d.ts +31 -0
- package/dist/tools/tool-builder/define.d.ts.map +1 -0
- package/dist/tools/tool-builder/define.js +31 -0
- package/dist/tools/tool-builder/define.js.map +1 -0
- package/dist/tools/tool-builder/index.d.ts +28 -0
- package/dist/tools/tool-builder/index.d.ts.map +1 -0
- package/dist/tools/tool-builder/index.js +27 -0
- package/dist/tools/tool-builder/index.js.map +1 -0
- package/dist/tools/tool-builder/results.d.ts +59 -0
- package/dist/tools/tool-builder/results.d.ts.map +1 -0
- package/dist/tools/tool-builder/results.js +125 -0
- package/dist/tools/tool-builder/results.js.map +1 -0
- package/dist/tools/tool-builder/types.d.ts +82 -0
- package/dist/tools/tool-builder/types.d.ts.map +1 -0
- package/dist/tools/tool-builder/types.js +9 -0
- package/dist/tools/tool-builder/types.js.map +1 -0
- package/dist/tools/tool-builder.d.ts +16 -0
- package/dist/tools/tool-builder.d.ts.map +1 -0
- package/dist/tools/tool-builder.js +16 -0
- package/dist/tools/tool-builder.js.map +1 -0
- package/icon.png +0 -0
- package/manifest.json +63 -0
- package/package.json +81 -0
- package/skills/yootheme-builder/SKILL.md +582 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elements-format.js","sourceRoot":"","sources":["../../../src/tools/format/elements-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Health format-sidecar — pure transforms for `yootheme_builder_health` and
|
|
3
|
+
* `yootheme_builder_diagnose`. Wave G.2.11 (Design §3.2 rows 1 / 2).
|
|
4
|
+
*
|
|
5
|
+
* Stateless helpers; the handlers themselves are tested separately in
|
|
6
|
+
* `tests/tools/health.test.ts` (probe orchestration + error paths).
|
|
7
|
+
*
|
|
8
|
+
* @license MIT
|
|
9
|
+
*/
|
|
10
|
+
import type { DetailGroup, StatsResultOptions } from '@getimo/mcp-toolkit';
|
|
11
|
+
export interface HealthPayload {
|
|
12
|
+
plugin_version: string;
|
|
13
|
+
yootheme_version: string | null;
|
|
14
|
+
wp_version: string | null;
|
|
15
|
+
php_version: string;
|
|
16
|
+
storage_type: string;
|
|
17
|
+
storage_target: string;
|
|
18
|
+
yootheme_loaded: boolean;
|
|
19
|
+
available_endpoints: string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Build the detail body for `yootheme_builder_health`.
|
|
23
|
+
*
|
|
24
|
+
* Three groups:
|
|
25
|
+
* 1. **Plugin** — plugin_version + yootheme_loaded + yootheme_version
|
|
26
|
+
* 2. **Host** — wp_version + php_version + storage info
|
|
27
|
+
* 3. **Endpoints** — count + a comma-separated sample (no full enumeration)
|
|
28
|
+
*
|
|
29
|
+
* Endpoint count rather than a long list keeps the detail card compact
|
|
30
|
+
* (real installs expose 16+ endpoints across pages/elements/sources/etc.).
|
|
31
|
+
*/
|
|
32
|
+
export declare function buildHealthDetail(payload: HealthPayload): {
|
|
33
|
+
groups: DetailGroup[];
|
|
34
|
+
title?: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Build the flat stats payload for `yootheme_builder_health` per
|
|
38
|
+
* Design-Doc §3.2 row 1 (Round-1 audit I1 fix). Returns the shape
|
|
39
|
+
* required by `@getimo/mcp-toolkit`'s `statsResult({ stats: [...] })`:
|
|
40
|
+
* a flat metric array (no nested groups) suitable for the stats-display
|
|
41
|
+
* Rich-Card variant.
|
|
42
|
+
*
|
|
43
|
+
* Metrics shipped (per Design-Doc §3.2 row 1 spec):
|
|
44
|
+
* plugin_version, yootheme_version, wp_version, php_version,
|
|
45
|
+
* storage_type, yootheme_loaded, endpoint_count
|
|
46
|
+
*
|
|
47
|
+
* `available_endpoints` is condensed to `endpoint_count` here — the
|
|
48
|
+
* full enumeration lives in the structuredContent payload for hosts
|
|
49
|
+
* that want it.
|
|
50
|
+
*/
|
|
51
|
+
export declare function buildHealthStats(payload: HealthPayload): StatsResultOptions;
|
|
52
|
+
export interface DiagnoseChecks {
|
|
53
|
+
plugin_reachable: boolean;
|
|
54
|
+
plugin_version?: string;
|
|
55
|
+
yootheme_loaded?: boolean;
|
|
56
|
+
yootheme_version?: string | null;
|
|
57
|
+
endpoint_count?: number;
|
|
58
|
+
plugin_error?: string;
|
|
59
|
+
bearer_valid?: boolean;
|
|
60
|
+
bearer_error?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Build the detail body for `yootheme_builder_diagnose`.
|
|
64
|
+
*
|
|
65
|
+
* Always 2 groups: Plugin probe + Bearer probe. The Bearer group is still
|
|
66
|
+
* present when the plugin is unreachable — its entries collapse to N/A so
|
|
67
|
+
* the structure stays stable across success / partial-fail / full-fail.
|
|
68
|
+
*/
|
|
69
|
+
export declare function buildDiagnoseDetail(checks: DiagnoseChecks): {
|
|
70
|
+
groups: DetailGroup[];
|
|
71
|
+
title?: string;
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=health-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-format.d.ts","sourceRoot":"","sources":["../../../src/tools/format/health-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI3E,MAAM,WAAW,aAAa;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG;IACvD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CA0DA;AAQD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,kBAAkB,CA0C3E;AAID,MAAM,WAAW,cAAc;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG;IACzD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CA6BA"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Health format-sidecar — pure transforms for `yootheme_builder_health` and
|
|
3
|
+
* `yootheme_builder_diagnose`. Wave G.2.11 (Design §3.2 rows 1 / 2).
|
|
4
|
+
*
|
|
5
|
+
* Stateless helpers; the handlers themselves are tested separately in
|
|
6
|
+
* `tests/tools/health.test.ts` (probe orchestration + error paths).
|
|
7
|
+
*
|
|
8
|
+
* @license MIT
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Build the detail body for `yootheme_builder_health`.
|
|
12
|
+
*
|
|
13
|
+
* Three groups:
|
|
14
|
+
* 1. **Plugin** — plugin_version + yootheme_loaded + yootheme_version
|
|
15
|
+
* 2. **Host** — wp_version + php_version + storage info
|
|
16
|
+
* 3. **Endpoints** — count + a comma-separated sample (no full enumeration)
|
|
17
|
+
*
|
|
18
|
+
* Endpoint count rather than a long list keeps the detail card compact
|
|
19
|
+
* (real installs expose 16+ endpoints across pages/elements/sources/etc.).
|
|
20
|
+
*/
|
|
21
|
+
export function buildHealthDetail(payload) {
|
|
22
|
+
const endpoints = payload.available_endpoints;
|
|
23
|
+
const endpointPreview = summarizeEndpoints(endpoints);
|
|
24
|
+
return {
|
|
25
|
+
title: 'YT Builder MCP — Health',
|
|
26
|
+
groups: [
|
|
27
|
+
{
|
|
28
|
+
label: 'Plugin',
|
|
29
|
+
entries: [
|
|
30
|
+
{
|
|
31
|
+
key: 'plugin_version',
|
|
32
|
+
label: 'Plugin version',
|
|
33
|
+
value: payload.plugin_version,
|
|
34
|
+
format: 'badge',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
key: 'yootheme_loaded',
|
|
38
|
+
label: 'YOOtheme loaded',
|
|
39
|
+
value: payload.yootheme_loaded,
|
|
40
|
+
format: 'boolean',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
key: 'yootheme_version',
|
|
44
|
+
label: 'YOOtheme version',
|
|
45
|
+
value: payload.yootheme_version,
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
label: 'Host',
|
|
51
|
+
entries: [
|
|
52
|
+
{ key: 'wp_version', label: 'WordPress version', value: payload.wp_version },
|
|
53
|
+
{ key: 'php_version', label: 'PHP version', value: payload.php_version },
|
|
54
|
+
{
|
|
55
|
+
key: 'storage_type',
|
|
56
|
+
label: 'Storage type',
|
|
57
|
+
value: payload.storage_type,
|
|
58
|
+
format: 'badge',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
key: 'storage_target',
|
|
62
|
+
label: 'Storage target',
|
|
63
|
+
value: payload.storage_target,
|
|
64
|
+
format: 'code',
|
|
65
|
+
copyable: true,
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
label: 'Endpoints',
|
|
71
|
+
entries: [
|
|
72
|
+
{ key: 'count', label: 'Count', value: endpoints.length, format: 'text' },
|
|
73
|
+
{ key: 'sample', label: 'Sample', value: endpointPreview },
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function summarizeEndpoints(endpoints) {
|
|
80
|
+
if (endpoints.length === 0)
|
|
81
|
+
return '—';
|
|
82
|
+
if (endpoints.length <= 6)
|
|
83
|
+
return endpoints.join(', ');
|
|
84
|
+
return `${endpoints.slice(0, 6).join(', ')}, …(+${String(endpoints.length - 6)} more)`;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Build the flat stats payload for `yootheme_builder_health` per
|
|
88
|
+
* Design-Doc §3.2 row 1 (Round-1 audit I1 fix). Returns the shape
|
|
89
|
+
* required by `@getimo/mcp-toolkit`'s `statsResult({ stats: [...] })`:
|
|
90
|
+
* a flat metric array (no nested groups) suitable for the stats-display
|
|
91
|
+
* Rich-Card variant.
|
|
92
|
+
*
|
|
93
|
+
* Metrics shipped (per Design-Doc §3.2 row 1 spec):
|
|
94
|
+
* plugin_version, yootheme_version, wp_version, php_version,
|
|
95
|
+
* storage_type, yootheme_loaded, endpoint_count
|
|
96
|
+
*
|
|
97
|
+
* `available_endpoints` is condensed to `endpoint_count` here — the
|
|
98
|
+
* full enumeration lives in the structuredContent payload for hosts
|
|
99
|
+
* that want it.
|
|
100
|
+
*/
|
|
101
|
+
export function buildHealthStats(payload) {
|
|
102
|
+
return {
|
|
103
|
+
title: 'YT Builder MCP — Health',
|
|
104
|
+
stats: [
|
|
105
|
+
{
|
|
106
|
+
key: 'plugin_version',
|
|
107
|
+
label: 'Plugin version',
|
|
108
|
+
value: payload.plugin_version,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
key: 'yootheme_version',
|
|
112
|
+
label: 'YOOtheme version',
|
|
113
|
+
value: payload.yootheme_version ?? '—',
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
key: 'wp_version',
|
|
117
|
+
label: 'WordPress version',
|
|
118
|
+
value: payload.wp_version ?? '—',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
key: 'php_version',
|
|
122
|
+
label: 'PHP version',
|
|
123
|
+
value: payload.php_version,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
key: 'storage_type',
|
|
127
|
+
label: 'Storage type',
|
|
128
|
+
value: payload.storage_type,
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
key: 'yootheme_loaded',
|
|
132
|
+
label: 'YOOtheme loaded',
|
|
133
|
+
value: payload.yootheme_loaded,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
key: 'endpoint_count',
|
|
137
|
+
label: 'Endpoint count',
|
|
138
|
+
value: payload.available_endpoints.length,
|
|
139
|
+
format: 'number',
|
|
140
|
+
},
|
|
141
|
+
],
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Build the detail body for `yootheme_builder_diagnose`.
|
|
146
|
+
*
|
|
147
|
+
* Always 2 groups: Plugin probe + Bearer probe. The Bearer group is still
|
|
148
|
+
* present when the plugin is unreachable — its entries collapse to N/A so
|
|
149
|
+
* the structure stays stable across success / partial-fail / full-fail.
|
|
150
|
+
*/
|
|
151
|
+
export function buildDiagnoseDetail(checks) {
|
|
152
|
+
const pluginEntries = [
|
|
153
|
+
{ key: 'plugin_reachable', label: 'Reachable', value: checks.plugin_reachable, format: 'boolean' },
|
|
154
|
+
];
|
|
155
|
+
if (typeof checks.plugin_version === 'string')
|
|
156
|
+
pluginEntries.push({ key: 'plugin_version', label: 'Plugin version', value: checks.plugin_version, format: 'badge' });
|
|
157
|
+
if (typeof checks.yootheme_loaded === 'boolean')
|
|
158
|
+
pluginEntries.push({ key: 'yootheme_loaded', label: 'YOOtheme loaded', value: checks.yootheme_loaded, format: 'boolean' });
|
|
159
|
+
if (typeof checks.yootheme_version === 'string')
|
|
160
|
+
pluginEntries.push({ key: 'yootheme_version', label: 'YOOtheme version', value: checks.yootheme_version });
|
|
161
|
+
if (typeof checks.endpoint_count === 'number')
|
|
162
|
+
pluginEntries.push({ key: 'endpoint_count', label: 'Endpoint count', value: checks.endpoint_count, format: 'text' });
|
|
163
|
+
if (typeof checks.plugin_error === 'string')
|
|
164
|
+
pluginEntries.push({ key: 'plugin_error', label: 'Plugin error', value: checks.plugin_error, format: 'code' });
|
|
165
|
+
const bearerEntries = typeof checks.bearer_valid === 'boolean'
|
|
166
|
+
? [{ key: 'bearer_valid', label: 'Bearer valid', value: checks.bearer_valid, format: 'boolean' }]
|
|
167
|
+
: [{ key: 'bearer_valid', label: 'Bearer valid', value: null }];
|
|
168
|
+
if (typeof checks.bearer_error === 'string')
|
|
169
|
+
bearerEntries.push({ key: 'bearer_error', label: 'Bearer error', value: checks.bearer_error, format: 'code' });
|
|
170
|
+
return {
|
|
171
|
+
title: 'YT Builder MCP — Diagnose',
|
|
172
|
+
groups: [
|
|
173
|
+
{ label: 'Plugin probe', entries: pluginEntries },
|
|
174
|
+
{ label: 'Bearer probe', entries: bearerEntries },
|
|
175
|
+
],
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=health-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-format.js","sourceRoot":"","sources":["../../../src/tools/format/health-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
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, else falls back to
|
|
25
|
+
* presence of a `children` field on the type definition.
|
|
26
|
+
* - Missing fields default to empty.
|
|
27
|
+
*/
|
|
28
|
+
export declare function mapTypeRow(input: Record<string, unknown>): TypeRow;
|
|
29
|
+
/**
|
|
30
|
+
* The REST plugin exposes element types EITHER as a flat array of
|
|
31
|
+
* `{name, label, origin, …}` objects OR as a wrapper object with an
|
|
32
|
+
* `element_types` array. Tolerate both. Also tolerate string-only
|
|
33
|
+
* entries (older shape — just the name) by promoting to `{name}`.
|
|
34
|
+
*/
|
|
35
|
+
export declare function flattenTypesPayload(payload: unknown): Record<string, unknown>[];
|
|
36
|
+
export declare function buildTypeSchemaDetail(payload: {
|
|
37
|
+
name: string;
|
|
38
|
+
label?: string;
|
|
39
|
+
origin?: string;
|
|
40
|
+
fields?: unknown;
|
|
41
|
+
}): {
|
|
42
|
+
groups: DetailGroup[];
|
|
43
|
+
title?: string;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=inspection-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAalE;AAUD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAY/E;AAuBD,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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
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, else falls back to
|
|
35
|
+
* presence of a `children` field on the type definition.
|
|
36
|
+
* - Missing fields default to empty.
|
|
37
|
+
*/
|
|
38
|
+
export function mapTypeRow(input) {
|
|
39
|
+
const explicitChildren = typeof input.has_children_support === 'boolean'
|
|
40
|
+
? input.has_children_support
|
|
41
|
+
: undefined;
|
|
42
|
+
return {
|
|
43
|
+
name: asString(input.name),
|
|
44
|
+
label: asString(input.label),
|
|
45
|
+
origin: asString(input.origin),
|
|
46
|
+
has_children_support: explicitChildren ?? hasChildrenField(input.children),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function hasChildrenField(v) {
|
|
50
|
+
if (Array.isArray(v))
|
|
51
|
+
return v.length > 0;
|
|
52
|
+
if (v !== null && typeof v === 'object') {
|
|
53
|
+
return Object.keys(v).length > 0;
|
|
54
|
+
}
|
|
55
|
+
return asBool(v);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The REST plugin exposes element types EITHER as a flat array of
|
|
59
|
+
* `{name, label, origin, …}` objects OR as a wrapper object with an
|
|
60
|
+
* `element_types` array. Tolerate both. Also tolerate string-only
|
|
61
|
+
* entries (older shape — just the name) by promoting to `{name}`.
|
|
62
|
+
*/
|
|
63
|
+
export function flattenTypesPayload(payload) {
|
|
64
|
+
if (Array.isArray(payload)) {
|
|
65
|
+
return payload.map(normalizeTypeEntry).filter((x) => x !== null);
|
|
66
|
+
}
|
|
67
|
+
if (payload !== null && typeof payload === 'object') {
|
|
68
|
+
const obj = payload;
|
|
69
|
+
const list = obj.element_types;
|
|
70
|
+
if (Array.isArray(list)) {
|
|
71
|
+
return list.map(normalizeTypeEntry).filter((x) => x !== null);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
function normalizeTypeEntry(entry) {
|
|
77
|
+
if (typeof entry === 'string')
|
|
78
|
+
return { name: entry };
|
|
79
|
+
if (entry !== null && typeof entry === 'object')
|
|
80
|
+
return entry;
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
// ─── Detail builder (Design §3.2 row 12) ─────────────────────────────
|
|
84
|
+
function summarizeFieldKeys(fields) {
|
|
85
|
+
if (fields === null || typeof fields !== 'object')
|
|
86
|
+
return '—';
|
|
87
|
+
const keys = Object.keys(fields);
|
|
88
|
+
if (keys.length === 0)
|
|
89
|
+
return '—';
|
|
90
|
+
if (keys.length <= 8)
|
|
91
|
+
return keys.join(', ');
|
|
92
|
+
return `${keys.slice(0, 8).join(', ')}, …(+${String(keys.length - 8)} more)`;
|
|
93
|
+
}
|
|
94
|
+
function countFields(fields) {
|
|
95
|
+
if (fields === null || typeof fields !== 'object')
|
|
96
|
+
return 0;
|
|
97
|
+
return Object.keys(fields).length;
|
|
98
|
+
}
|
|
99
|
+
export function buildTypeSchemaDetail(payload) {
|
|
100
|
+
return {
|
|
101
|
+
title: `Element type: ${payload.name}`,
|
|
102
|
+
groups: [
|
|
103
|
+
{
|
|
104
|
+
label: 'Identity',
|
|
105
|
+
entries: [
|
|
106
|
+
{ key: 'name', label: 'Name', value: payload.name, format: 'code', copyable: true },
|
|
107
|
+
...(typeof payload.label === 'string' && payload.label.length > 0
|
|
108
|
+
? [{ key: 'label', label: 'Label', value: payload.label }]
|
|
109
|
+
: []),
|
|
110
|
+
...(typeof payload.origin === 'string' && payload.origin.length > 0
|
|
111
|
+
? [{ key: 'origin', label: 'Origin', value: payload.origin, format: 'badge' }]
|
|
112
|
+
: []),
|
|
113
|
+
],
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
label: 'Fields (summary)',
|
|
117
|
+
entries: [
|
|
118
|
+
{ key: 'count', label: 'Count', value: countFields(payload.fields), format: 'text' },
|
|
119
|
+
{ key: 'keys', label: 'Keys', value: summarizeFieldKeys(payload.fields) },
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=inspection-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspection-format.js","sourceRoot":"","sources":["../../../src/tools/format/inspection-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
export declare function mapPageRow(input: Record<string, unknown>): Record<string, unknown>;
|
|
28
|
+
/** Maps a `/pages/{id}/schema` node to the table row shape. */
|
|
29
|
+
export declare function mapSchemaNodeRow(input: Record<string, unknown>): Record<string, unknown>;
|
|
30
|
+
/** Builds schema rows from the array returned by the REST `nodes` field. */
|
|
31
|
+
export declare function buildSchemaRows(nodes: ReadonlyArray<Record<string, unknown>>): Record<string, unknown>[];
|
|
32
|
+
/** Build the `detailResult` body for `get_etag`. Two groups: identity + freshness. */
|
|
33
|
+
export declare function buildEtagDetail(payload: {
|
|
34
|
+
etag: string;
|
|
35
|
+
generated_at?: string;
|
|
36
|
+
}): {
|
|
37
|
+
groups: DetailGroup[];
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=pages-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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,wFAAwF;AACxF,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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
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
|
+
export function mapPageRow(input) {
|
|
58
|
+
return {
|
|
59
|
+
id: asString(input.id),
|
|
60
|
+
label: asString(input.label),
|
|
61
|
+
type: asString(input.type),
|
|
62
|
+
elements_count: asInt(input.elements_count),
|
|
63
|
+
modified_at: asString(input.modified_at),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/** Maps a `/pages/{id}/schema` node to the table row shape. */
|
|
67
|
+
export function mapSchemaNodeRow(input) {
|
|
68
|
+
return {
|
|
69
|
+
path: asString(input.path),
|
|
70
|
+
element_type: asString(input.element_type),
|
|
71
|
+
label: asString(input.label),
|
|
72
|
+
has_binding: asBool(input.has_binding),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/** Builds schema rows from the array returned by the REST `nodes` field. */
|
|
76
|
+
export function buildSchemaRows(nodes) {
|
|
77
|
+
return nodes.map(mapSchemaNodeRow);
|
|
78
|
+
}
|
|
79
|
+
// ─── Detail builders ─────────────────────────────────────────────────
|
|
80
|
+
/** Build the `detailResult` body for `get_etag`. Two groups: identity + freshness. */
|
|
81
|
+
export function buildEtagDetail(payload) {
|
|
82
|
+
return {
|
|
83
|
+
groups: [
|
|
84
|
+
{
|
|
85
|
+
label: 'Identity',
|
|
86
|
+
entries: [
|
|
87
|
+
{
|
|
88
|
+
key: 'etag',
|
|
89
|
+
label: 'ETag',
|
|
90
|
+
value: payload.etag,
|
|
91
|
+
format: 'code',
|
|
92
|
+
copyable: true,
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
label: 'Freshness',
|
|
98
|
+
entries: [
|
|
99
|
+
{
|
|
100
|
+
key: 'generated_at',
|
|
101
|
+
label: 'Generated',
|
|
102
|
+
value: payload.generated_at ?? null,
|
|
103
|
+
format: 'date',
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=pages-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pages-format.js","sourceRoot":"","sources":["../../../src/tools/format/pages-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,wEAAwE;AAExE,qCAAqC;AACrC,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACvD,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IACpD,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1C,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IACzC,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;IACjE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;CACvD,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IACzD,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IACpD,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1C,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;CACpE,CAAC;AAEF,wEAAwE;AAExE,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IACxD,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IACxD,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IACjD,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3C,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE;CAClD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA2B;IAC1D,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IACxD,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IACjD,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;CAC9C,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,KAAK,CAAC,CAAU;IACrB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,MAAM,CAAC,CAAU;IACtB,OAAO,CAAC,KAAK,IAAI,CAAC;AACtB,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,UAAU,CAAC,KAA8B;IACrD,OAAO;QACH,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1B,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;QAC3C,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;KAC3C,CAAC;AACN,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,gBAAgB,CAAC,KAA8B;IAC3D,OAAO;QACH,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1B,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;QAC1C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;KACzC,CAAC;AACN,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,eAAe,CAC3B,KAA6C;IAE7C,OAAO,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACvC,CAAC;AAED,wEAAwE;AAExE,sFAAsF;AACtF,MAAM,UAAU,eAAe,CAAC,OAG/B;IACG,OAAO;QACH,MAAM,EAAE;YACJ;gBACI,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE;oBACL;wBACI,GAAG,EAAE,MAAM;wBACX,KAAK,EAAE,MAAM;wBACb,KAAK,EAAE,OAAO,CAAC,IAAI;wBACnB,MAAM,EAAE,MAAM;wBACd,QAAQ,EAAE,IAAI;qBACjB;iBACJ;aACJ;YACD;gBACI,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE;oBACL;wBACI,GAAG,EAAE,cAAc;wBACnB,KAAK,EAAE,WAAW;wBAClB,KAAK,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;wBACnC,MAAM,EAAE,MAAM;qBACjB;iBACJ;aACJ;SACJ;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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,CAOtE;AAWD,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,OAAO,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAqB3B;AAID,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,CA0D5C"}
|