@wootsup/yt-builder-mcp 1.1.6 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/bin/yt-builder-mcp.js +55 -40
- package/dist/auth.d.ts +137 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +244 -0
- package/dist/auth.js.map +1 -0
- package/dist/cli/invocation-decision.d.ts +57 -0
- package/dist/cli/invocation-decision.d.ts.map +1 -0
- package/dist/cli/invocation-decision.js +86 -0
- package/dist/cli/invocation-decision.js.map +1 -0
- package/dist/client.d.ts +112 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +190 -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 +55 -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 +58 -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 +82 -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 +292 -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 +121 -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 +40 -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 +46 -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 +156 -0
- package/dist/clients/index.d.ts.map +1 -0
- package/dist/clients/index.js +213 -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 +71 -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 +43 -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 +100 -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 +47 -0
- package/dist/gateway/advanced-tool/domains.d.ts.map +1 -0
- package/dist/gateway/advanced-tool/domains.js +94 -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 +69 -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 +50 -0
- package/dist/gateway/essentials.d.ts.map +1 -0
- package/dist/gateway/essentials.js +108 -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 +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +119 -0
- package/dist/index.js.map +1 -0
- package/dist/install-skill.d.ts +43 -0
- package/dist/install-skill.d.ts.map +1 -0
- package/dist/install-skill.js +118 -0
- package/dist/install-skill.js.map +1 -0
- package/dist/platform/detect.d.ts +64 -0
- package/dist/platform/detect.d.ts.map +1 -0
- package/dist/platform/detect.js +98 -0
- package/dist/platform/detect.js.map +1 -0
- package/dist/platform/index.d.ts +121 -0
- package/dist/platform/index.d.ts.map +1 -0
- package/dist/platform/index.js +176 -0
- package/dist/platform/index.js.map +1 -0
- package/dist/platform/joomla.d.ts +44 -0
- package/dist/platform/joomla.d.ts.map +1 -0
- package/dist/platform/joomla.js +46 -0
- package/dist/platform/joomla.js.map +1 -0
- package/dist/server.d.ts +110 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +274 -0
- package/dist/server.js.map +1 -0
- package/dist/setup-cli-confirm.d.ts +36 -0
- package/dist/setup-cli-confirm.d.ts.map +1 -0
- package/dist/setup-cli-confirm.js +59 -0
- package/dist/setup-cli-confirm.js.map +1 -0
- package/dist/setup-cli.d.ts +193 -0
- package/dist/setup-cli.d.ts.map +1 -0
- package/dist/setup-cli.js +1032 -0
- package/dist/setup-cli.js.map +1 -0
- package/dist/setup-prompts.d.ts +64 -0
- package/dist/setup-prompts.d.ts.map +1 -0
- package/dist/setup-prompts.js +221 -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 +164 -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 +199 -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/sites/bootstrap.d.ts +41 -0
- package/dist/sites/bootstrap.d.ts.map +1 -0
- package/dist/sites/bootstrap.js +58 -0
- package/dist/sites/bootstrap.js.map +1 -0
- package/dist/sites/cli/add-site.d.ts +106 -0
- package/dist/sites/cli/add-site.d.ts.map +1 -0
- package/dist/sites/cli/add-site.js +185 -0
- package/dist/sites/cli/add-site.js.map +1 -0
- package/dist/sites/cli/list-sites.d.ts +40 -0
- package/dist/sites/cli/list-sites.d.ts.map +1 -0
- package/dist/sites/cli/list-sites.js +116 -0
- package/dist/sites/cli/list-sites.js.map +1 -0
- package/dist/sites/cli/remove-site.d.ts +60 -0
- package/dist/sites/cli/remove-site.d.ts.map +1 -0
- package/dist/sites/cli/remove-site.js +120 -0
- package/dist/sites/cli/remove-site.js.map +1 -0
- package/dist/sites/cli/set-default.d.ts +47 -0
- package/dist/sites/cli/set-default.d.ts.map +1 -0
- package/dist/sites/cli/set-default.js +69 -0
- package/dist/sites/cli/set-default.js.map +1 -0
- package/dist/sites/cli/test-site.d.ts +77 -0
- package/dist/sites/cli/test-site.d.ts.map +1 -0
- package/dist/sites/cli/test-site.js +146 -0
- package/dist/sites/cli/test-site.js.map +1 -0
- package/dist/sites/client-pool.d.ts +157 -0
- package/dist/sites/client-pool.d.ts.map +1 -0
- package/dist/sites/client-pool.js +222 -0
- package/dist/sites/client-pool.js.map +1 -0
- package/dist/sites/env-bridge.d.ts +55 -0
- package/dist/sites/env-bridge.d.ts.map +1 -0
- package/dist/sites/env-bridge.js +94 -0
- package/dist/sites/env-bridge.js.map +1 -0
- package/dist/sites/paths.d.ts +21 -0
- package/dist/sites/paths.d.ts.map +1 -0
- package/dist/sites/paths.js +37 -0
- package/dist/sites/paths.js.map +1 -0
- package/dist/sites/probe.d.ts +60 -0
- package/dist/sites/probe.d.ts.map +1 -0
- package/dist/sites/probe.js +112 -0
- package/dist/sites/probe.js.map +1 -0
- package/dist/sites/registry.d.ts +142 -0
- package/dist/sites/registry.d.ts.map +1 -0
- package/dist/sites/registry.js +163 -0
- package/dist/sites/registry.js.map +1 -0
- package/dist/sites/schema.d.ts +90 -0
- package/dist/sites/schema.d.ts.map +1 -0
- package/dist/sites/schema.js +71 -0
- package/dist/sites/schema.js.map +1 -0
- package/dist/sites/secret-resolver.d.ts +115 -0
- package/dist/sites/secret-resolver.d.ts.map +1 -0
- package/dist/sites/secret-resolver.js +225 -0
- package/dist/sites/secret-resolver.js.map +1 -0
- package/dist/sites/store.d.ts +82 -0
- package/dist/sites/store.d.ts.map +1 -0
- package/dist/sites/store.js +198 -0
- package/dist/sites/store.js.map +1 -0
- package/dist/sites/tools/index.d.ts +28 -0
- package/dist/sites/tools/index.d.ts.map +1 -0
- package/dist/sites/tools/index.js +38 -0
- package/dist/sites/tools/index.js.map +1 -0
- package/dist/sites/tools/sites-list.d.ts +48 -0
- package/dist/sites/tools/sites-list.d.ts.map +1 -0
- package/dist/sites/tools/sites-list.js +137 -0
- package/dist/sites/tools/sites-list.js.map +1 -0
- package/dist/sites/tools/sites-test.d.ts +47 -0
- package/dist/sites/tools/sites-test.d.ts.map +1 -0
- package/dist/sites/tools/sites-test.js +148 -0
- package/dist/sites/tools/sites-test.js.map +1 -0
- package/dist/sites/tools/use-site.d.ts +47 -0
- package/dist/sites/tools/use-site.d.ts.map +1 -0
- package/dist/sites/tools/use-site.js +183 -0
- package/dist/sites/tools/use-site.js.map +1 -0
- package/dist/skill-loader.d.ts +111 -0
- package/dist/skill-loader.d.ts.map +1 -0
- package/dist/skill-loader.js +191 -0
- package/dist/skill-loader.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 +208 -0
- package/dist/tools/elements/builders.js.map +1 -0
- package/dist/tools/elements/handlers-write.d.ts +49 -0
- package/dist/tools/elements/handlers-write.d.ts.map +1 -0
- package/dist/tools/elements/handlers-write.js +341 -0
- package/dist/tools/elements/handlers-write.js.map +1 -0
- package/dist/tools/elements/handlers.d.ts +70 -0
- package/dist/tools/elements/handlers.d.ts.map +1 -0
- package/dist/tools/elements/handlers.js +292 -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 +40 -0
- package/dist/tools/format/elements-format.d.ts.map +1 -0
- package/dist/tools/format/elements-format.js +193 -0
- package/dist/tools/format/elements-format.js.map +1 -0
- package/dist/tools/format/health-format.d.ts +79 -0
- package/dist/tools/format/health-format.d.ts.map +1 -0
- package/dist/tools/format/health-format.js +181 -0
- package/dist/tools/format/health-format.js.map +1 -0
- package/dist/tools/format/inspection-format.d.ts +70 -0
- package/dist/tools/format/inspection-format.d.ts.map +1 -0
- package/dist/tools/format/inspection-format.js +359 -0
- package/dist/tools/format/inspection-format.js.map +1 -0
- package/dist/tools/format/pages-format.d.ts +57 -0
- package/dist/tools/format/pages-format.d.ts.map +1 -0
- package/dist/tools/format/pages-format.js +157 -0
- package/dist/tools/format/pages-format.js.map +1 -0
- package/dist/tools/format/sources-format.d.ts +44 -0
- package/dist/tools/format/sources-format.d.ts.map +1 -0
- package/dist/tools/format/sources-format.js +242 -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 +220 -0
- package/dist/tools/health.js.map +1 -0
- package/dist/tools/index.d.ts +30 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +39 -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 +401 -0
- package/dist/tools/inspection.js.map +1 -0
- package/dist/tools/layout-flatten.d.ts +75 -0
- package/dist/tools/layout-flatten.d.ts.map +1 -0
- package/dist/tools/layout-flatten.js +107 -0
- package/dist/tools/layout-flatten.js.map +1 -0
- package/dist/tools/multi-items/builders.d.ts +23 -0
- package/dist/tools/multi-items/builders.d.ts.map +1 -0
- package/dist/tools/multi-items/builders.js +84 -0
- package/dist/tools/multi-items/builders.js.map +1 -0
- package/dist/tools/multi-items/clean-implode-handler.d.ts +36 -0
- package/dist/tools/multi-items/clean-implode-handler.d.ts.map +1 -0
- package/dist/tools/multi-items/clean-implode-handler.js +57 -0
- package/dist/tools/multi-items/clean-implode-handler.js.map +1 -0
- package/dist/tools/multi-items/format/inspection-format.d.ts +41 -0
- package/dist/tools/multi-items/format/inspection-format.d.ts.map +1 -0
- package/dist/tools/multi-items/format/inspection-format.js +64 -0
- package/dist/tools/multi-items/format/inspection-format.js.map +1 -0
- package/dist/tools/multi-items/index.d.ts +18 -0
- package/dist/tools/multi-items/index.d.ts.map +1 -0
- package/dist/tools/multi-items/index.js +18 -0
- package/dist/tools/multi-items/index.js.map +1 -0
- package/dist/tools/multi-items/inspect-handler.d.ts +76 -0
- package/dist/tools/multi-items/inspect-handler.d.ts.map +1 -0
- package/dist/tools/multi-items/inspect-handler.js +133 -0
- package/dist/tools/multi-items/inspect-handler.js.map +1 -0
- package/dist/tools/multi-items/inspection-cache.d.ts +85 -0
- package/dist/tools/multi-items/inspection-cache.d.ts.map +1 -0
- package/dist/tools/multi-items/inspection-cache.js +126 -0
- package/dist/tools/multi-items/inspection-cache.js.map +1 -0
- package/dist/tools/multi-items/item-container-map.d.ts +41 -0
- package/dist/tools/multi-items/item-container-map.d.ts.map +1 -0
- package/dist/tools/multi-items/item-container-map.js +73 -0
- package/dist/tools/multi-items/item-container-map.js.map +1 -0
- package/dist/tools/pages/builders.d.ts +43 -0
- package/dist/tools/pages/builders.d.ts.map +1 -0
- package/dist/tools/pages/builders.js +229 -0
- package/dist/tools/pages/builders.js.map +1 -0
- package/dist/tools/pages/handlers-read.d.ts +33 -0
- package/dist/tools/pages/handlers-read.d.ts.map +1 -0
- package/dist/tools/pages/handlers-read.js +260 -0
- package/dist/tools/pages/handlers-read.js.map +1 -0
- package/dist/tools/pages/handlers-write.d.ts +63 -0
- package/dist/tools/pages/handlers-write.d.ts.map +1 -0
- package/dist/tools/pages/handlers-write.js +127 -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 +157 -0
- package/dist/tools/pages/schemas.d.ts.map +1 -0
- package/dist/tools/pages/schemas.js +232 -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/pool-resolve-helper.d.ts +83 -0
- package/dist/tools/pool-resolve-helper.d.ts.map +1 -0
- package/dist/tools/pool-resolve-helper.js +148 -0
- package/dist/tools/pool-resolve-helper.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 +25 -0
- package/dist/tools/shared-schemas.d.ts.map +1 -0
- package/dist/tools/shared-schemas.js +72 -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 +118 -0
- package/dist/tools/sources/builders.js.map +1 -0
- package/dist/tools/sources/handlers-bind.d.ts +28 -0
- package/dist/tools/sources/handlers-bind.d.ts.map +1 -0
- package/dist/tools/sources/handlers-bind.js +181 -0
- package/dist/tools/sources/handlers-bind.js.map +1 -0
- package/dist/tools/sources/handlers.d.ts +47 -0
- package/dist/tools/sources/handlers.d.ts.map +1 -0
- package/dist/tools/sources/handlers.js +108 -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 +106 -0
- package/dist/tools/sparse-fields.d.ts.map +1 -0
- package/dist/tools/sparse-fields.js +165 -0
- package/dist/tools/sparse-fields.js.map +1 -0
- package/dist/tools/tool-builder/annotations.d.ts +55 -0
- package/dist/tools/tool-builder/annotations.d.ts.map +1 -0
- package/dist/tools/tool-builder/annotations.js +86 -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 +104 -0
- package/dist/tools/tool-builder/results.d.ts.map +1 -0
- package/dist/tools/tool-builder/results.js +224 -0
- package/dist/tools/tool-builder/results.js.map +1 -0
- package/dist/tools/tool-builder/types.d.ts +97 -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/dist/uninstall-skill.d.ts +52 -0
- package/dist/uninstall-skill.d.ts.map +1 -0
- package/dist/uninstall-skill.js +146 -0
- package/dist/uninstall-skill.js.map +1 -0
- package/dist/uninstall.d.ts +73 -0
- package/dist/uninstall.d.ts.map +1 -0
- package/dist/uninstall.js +82 -0
- package/dist/uninstall.js.map +1 -0
- package/icon.png +0 -0
- package/manifest.json +10 -10
- package/package.json +4 -1
- package/skills/yt-builder-mcp/SKILL.md +30 -26
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page-tool READ handlers + shared output-schemas.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `src/tools/pages.ts` (Round-2 R2-A2-CRIT1) to keep
|
|
5
|
+
* each file ≤ 200 LoC per Architecture §11. Write handlers (page_save,
|
|
6
|
+
* page_publish — 3-phase progress contract) live in `./handlers-write.ts`.
|
|
7
|
+
*
|
|
8
|
+
* @license MIT
|
|
9
|
+
*/
|
|
10
|
+
import { type RestClient } from '../../client.js';
|
|
11
|
+
import { type ToolResult } from '../tool-builder.js';
|
|
12
|
+
export declare function handlePagesList(client: RestClient, { fields }: {
|
|
13
|
+
fields?: readonly string[];
|
|
14
|
+
}): Promise<ToolResult>;
|
|
15
|
+
export declare function handlePageGetLayout(client: RestClient, { template_id, flat, fields }: {
|
|
16
|
+
template_id: string;
|
|
17
|
+
flat?: boolean;
|
|
18
|
+
fields?: readonly string[];
|
|
19
|
+
}): Promise<ToolResult>;
|
|
20
|
+
export declare function handlePageGetSchema(client: RestClient, { template_id }: {
|
|
21
|
+
template_id: string;
|
|
22
|
+
}): Promise<ToolResult>;
|
|
23
|
+
export declare function handleGetEtag(client: RestClient): Promise<ToolResult>;
|
|
24
|
+
/**
|
|
25
|
+
* T9: a one-call structured overview of a template — element counts by
|
|
26
|
+
* type, binding count, max nesting depth, and named landmarks. Lets the
|
|
27
|
+
* agent grasp a 96-node template for ~1 kB instead of pulling the full
|
|
28
|
+
* element_list dump (20 kB+).
|
|
29
|
+
*/
|
|
30
|
+
export declare function handleTemplateSummary(client: RestClient, { template_id }: {
|
|
31
|
+
template_id: string;
|
|
32
|
+
}): Promise<ToolResult>;
|
|
33
|
+
//# sourceMappingURL=handlers-read.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers-read.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/handlers-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAiBpE,OAAO,EAIH,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAI5B,wBAAsB,eAAe,CACjC,MAAM,EAAE,UAAU,EAClB,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC3C,OAAO,CAAC,UAAU,CAAC,CAyCrB;AAID,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,GACF,OAAO,CAAC,UAAU,CAAC,CAsGrB;AAID,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACzC,OAAO,CAAC,UAAU,CAAC,CA4CrB;AAID,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB3E;AAID;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACzC,OAAO,CAAC,UAAU,CAAC,CA8CrB"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page-tool READ handlers + shared output-schemas.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `src/tools/pages.ts` (Round-2 R2-A2-CRIT1) to keep
|
|
5
|
+
* each file ≤ 200 LoC per Architecture §11. Write handlers (page_save,
|
|
6
|
+
* page_publish — 3-phase progress contract) live in `./handlers-write.ts`.
|
|
7
|
+
*
|
|
8
|
+
* @license MIT
|
|
9
|
+
*/
|
|
10
|
+
import { detailResult, tableResult } from '@getimo/mcp-toolkit';
|
|
11
|
+
import { encodeTemplateId } from '../../client.js';
|
|
12
|
+
import { flattenLayout } from '../layout-flatten.js';
|
|
13
|
+
import { PAGES_COMPACT_COLUMNS, PAGES_TABLE_COLUMNS, SCHEMA_COMPACT_COLUMNS, SCHEMA_TABLE_COLUMNS, buildEtagDetail, buildSchemaRows, mapPageRow, } from '../format/pages-format.js';
|
|
14
|
+
import { DEFAULT_FIELDS_PAGES_LIST, projectFields, projectedFieldsEcho, projectionFeedback, } from '../sparse-fields.js';
|
|
15
|
+
import { errorResult, jsonResult, structuredResult, } from '../tool-builder.js';
|
|
16
|
+
// ─── pages_list ─────────────────────────────────────────────────────
|
|
17
|
+
export async function handlePagesList(client, { fields }) {
|
|
18
|
+
try {
|
|
19
|
+
const data = await client.get('/pages');
|
|
20
|
+
const rawPages = Array.isArray(data.pages) ? data.pages : [];
|
|
21
|
+
const mapped = rawPages
|
|
22
|
+
.filter((x) => x !== null && typeof x === 'object')
|
|
23
|
+
.map(mapPageRow);
|
|
24
|
+
// Project AFTER mapping — keeps stable key names and lets the
|
|
25
|
+
// toolkit's tableResult format the raw, full-shape rows for the
|
|
26
|
+
// LLM text leg while the structuredContent leg carries the
|
|
27
|
+
// projected per-item slice.
|
|
28
|
+
const items = projectFields(mapped, fields, DEFAULT_FIELDS_PAGES_LIST);
|
|
29
|
+
const echo = projectedFieldsEcho(fields, DEFAULT_FIELDS_PAGES_LIST);
|
|
30
|
+
const feedback = projectionFeedback(mapped, fields);
|
|
31
|
+
const unknownNote = feedback !== undefined && feedback.unknown_fields.length > 0
|
|
32
|
+
? ` (unknown fields ignored: ${feedback.unknown_fields.join(', ')}; available: ${feedback.available_fields.join(', ')})`
|
|
33
|
+
: '';
|
|
34
|
+
const toolkitResult = tableResult(mapped, {
|
|
35
|
+
columns: [...PAGES_TABLE_COLUMNS],
|
|
36
|
+
compactColumns: [...PAGES_COMPACT_COLUMNS],
|
|
37
|
+
header: (count) => `${String(count)} pages${unknownNote}`,
|
|
38
|
+
footer: 'Use yootheme_builder_page_get_schema <id> to inspect.',
|
|
39
|
+
});
|
|
40
|
+
return structuredResult(toolkitResult, {
|
|
41
|
+
items,
|
|
42
|
+
total: items.length,
|
|
43
|
+
...(typeof data.etag === 'string' ? { etag: data.etag } : {}),
|
|
44
|
+
...(echo !== undefined ? { projected_fields: [...echo] } : {}),
|
|
45
|
+
...(feedback !== undefined ? {
|
|
46
|
+
available_fields: [...feedback.available_fields],
|
|
47
|
+
unknown_fields: [...feedback.unknown_fields],
|
|
48
|
+
} : {}),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
return errorResult({
|
|
53
|
+
error: e,
|
|
54
|
+
context: {},
|
|
55
|
+
hint: 'Run yootheme_builder_diagnose to verify connectivity and auth.',
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// ─── page_get_layout ────────────────────────────────────────────────
|
|
60
|
+
export async function handlePageGetLayout(client, { template_id, flat, fields }) {
|
|
61
|
+
try {
|
|
62
|
+
const data = await client.get(`/pages/${encodeTemplateId(template_id)}/layout`);
|
|
63
|
+
if (flat !== true) {
|
|
64
|
+
// Default: nested passthrough — unchanged from pre-G.3.
|
|
65
|
+
return jsonResult(data);
|
|
66
|
+
}
|
|
67
|
+
// flat: true → depth-first walk on the nested layout. Apply
|
|
68
|
+
// pickFields per element when `fields[]` was passed; echo the
|
|
69
|
+
// projection so the AI knows the per-item shape it received.
|
|
70
|
+
//
|
|
71
|
+
// Two distinct envelope shapes reach this handler — both must
|
|
72
|
+
// flatten to the same element list:
|
|
73
|
+
//
|
|
74
|
+
// (A) Theme templates: `data.layout = {name, layout:
|
|
75
|
+
// {0:{...},1:{...}}, ...}` — the actual children live
|
|
76
|
+
// under the INNER `layout` field, keyed by stringified
|
|
77
|
+
// indices. F-208 (Audit 2026-05-26) fix descended one
|
|
78
|
+
// extra hop here so paths anchored on `/layout/0` rather
|
|
79
|
+
// than the double-prefixed `/layout/layout/0`.
|
|
80
|
+
//
|
|
81
|
+
// (B) Per-page templates (Wave-9 F7 fix, 2026-05-29): cold-AI
|
|
82
|
+
// #8 reported `elements:[]` for a non-empty per-page
|
|
83
|
+
// template. Root cause: per-page layouts come from
|
|
84
|
+
// PerPageLayoutEncoder which decodes to the BARE node
|
|
85
|
+
// tree `{type:'layout', children:[{...},{...}]}` — there
|
|
86
|
+
// is NO outer `{name, layout:{...}}` wrapper. The
|
|
87
|
+
// previous envelope-detect only triggered on the inner
|
|
88
|
+
// `layout` key, so for per-page it fell through to
|
|
89
|
+
// walking `data.layout` directly, where flattenLayout
|
|
90
|
+
// iterates top-level entries (`['type', 'layout']` +
|
|
91
|
+
// `['children', [...]]`) and emits nothing — neither
|
|
92
|
+
// entry is a valid element node.
|
|
93
|
+
//
|
|
94
|
+
// Per-page detection: a node with `type === 'layout'` and
|
|
95
|
+
// an array `children`. Pass its `.children` array to
|
|
96
|
+
// flattenLayout so the walker iterates the real elements
|
|
97
|
+
// (and paths anchor on `/layout/0`, `/layout/1`, ... so
|
|
98
|
+
// cold agents can copy them into element_path without
|
|
99
|
+
// further bookkeeping).
|
|
100
|
+
const dataLayout = data.layout;
|
|
101
|
+
const isObjectNode = dataLayout !== null &&
|
|
102
|
+
typeof dataLayout === 'object' &&
|
|
103
|
+
!Array.isArray(dataLayout);
|
|
104
|
+
const layoutObj = isObjectNode ? dataLayout : null;
|
|
105
|
+
const hasInnerLayoutField = layoutObj !== null &&
|
|
106
|
+
'layout' in layoutObj &&
|
|
107
|
+
layoutObj.layout !== null &&
|
|
108
|
+
typeof layoutObj.layout === 'object';
|
|
109
|
+
const isPerPageRootNode = layoutObj !== null &&
|
|
110
|
+
layoutObj.type === 'layout' &&
|
|
111
|
+
Array.isArray(layoutObj.children);
|
|
112
|
+
let layoutRoot;
|
|
113
|
+
if (hasInnerLayoutField) {
|
|
114
|
+
// Shape (A) — theme template envelope.
|
|
115
|
+
layoutRoot = layoutObj.layout;
|
|
116
|
+
}
|
|
117
|
+
else if (isPerPageRootNode) {
|
|
118
|
+
// Shape (B) — per-page bare-layout-node. Iterate children
|
|
119
|
+
// directly so the walker sees real element nodes.
|
|
120
|
+
layoutRoot = layoutObj.children;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
// Back-compat: assume already in walkable form.
|
|
124
|
+
layoutRoot = dataLayout;
|
|
125
|
+
}
|
|
126
|
+
const flatElements = flattenLayout(layoutRoot);
|
|
127
|
+
const projected = projectFields(flatElements, fields,
|
|
128
|
+
// No default-set on layout.flat: keep "all" semantics
|
|
129
|
+
// unless caller opts-in. The echo helper below mirrors that.
|
|
130
|
+
[]);
|
|
131
|
+
const echo = projectedFieldsEcho(fields, undefined);
|
|
132
|
+
// 1.0.1 Wave-1.7 F-COLD-3: forward the canonical pointer base
|
|
133
|
+
// through the flat-projection path too so cold agents iterating
|
|
134
|
+
// with `flat: true` see the same hint they get on the nested
|
|
135
|
+
// default payload.
|
|
136
|
+
return jsonResult({
|
|
137
|
+
elements: projected,
|
|
138
|
+
...(typeof data.etag === 'string' ? { etag: data.etag } : {}),
|
|
139
|
+
...(typeof data.layout_root_pointer === 'string'
|
|
140
|
+
? { layout_root_pointer: data.layout_root_pointer }
|
|
141
|
+
: {}),
|
|
142
|
+
...(typeof data.pointer_hint === 'string'
|
|
143
|
+
? { pointer_hint: data.pointer_hint }
|
|
144
|
+
: {}),
|
|
145
|
+
...(echo !== undefined ? { projected_fields: [...echo] } : {}),
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
catch (e) {
|
|
149
|
+
return errorResult({
|
|
150
|
+
error: e,
|
|
151
|
+
context: { template_id },
|
|
152
|
+
hint: 'Verify the template_id exists via yootheme_builder_pages_list. ' +
|
|
153
|
+
'IDs are case-sensitive.',
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// ─── page_get_schema ────────────────────────────────────────────────
|
|
158
|
+
export async function handlePageGetSchema(client, { template_id }) {
|
|
159
|
+
try {
|
|
160
|
+
const data = await client.get(`/pages/${encodeTemplateId(template_id)}/schema`);
|
|
161
|
+
const rawNodes = Array.isArray(data.nodes) ? data.nodes : [];
|
|
162
|
+
const items = buildSchemaRows(rawNodes.filter((x) => x !== null && typeof x === 'object'));
|
|
163
|
+
// Templates routinely exceed 21 nodes (a typical home page has
|
|
164
|
+
// 30–150 elements). Force compact level so the LLM never gets
|
|
165
|
+
// truncated text — toolkit's resolveDetailLevel honours the
|
|
166
|
+
// explicit override.
|
|
167
|
+
//
|
|
168
|
+
// TODO(toolkit-upstream): contribute a `compactWhen: (count) => boolean`
|
|
169
|
+
// field to @getimo/mcp-toolkit's AutoFormatOptions so this
|
|
170
|
+
// can be expressed declaratively on the config object instead
|
|
171
|
+
// of via the third positional argument. Tracked as Round-1.5
|
|
172
|
+
// follow-up (I2).
|
|
173
|
+
const toolkitResult = tableResult(items, {
|
|
174
|
+
columns: [...SCHEMA_TABLE_COLUMNS],
|
|
175
|
+
compactColumns: [...SCHEMA_COMPACT_COLUMNS],
|
|
176
|
+
header: (count) => `${String(count)} nodes in template "${template_id}"`,
|
|
177
|
+
footer: 'Use yootheme_builder_element_get <path> for full element data.',
|
|
178
|
+
}, 'compact');
|
|
179
|
+
return structuredResult(toolkitResult, {
|
|
180
|
+
items,
|
|
181
|
+
total: items.length,
|
|
182
|
+
template_id,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
catch (e) {
|
|
186
|
+
return errorResult({
|
|
187
|
+
error: e,
|
|
188
|
+
context: { template_id },
|
|
189
|
+
hint: 'Verify the template_id exists via yootheme_builder_pages_list.',
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
// ─── get_etag ───────────────────────────────────────────────────────
|
|
194
|
+
export async function handleGetEtag(client) {
|
|
195
|
+
try {
|
|
196
|
+
const data = await client.get('/etag');
|
|
197
|
+
const toolkitResult = detailResult(buildEtagDetail({
|
|
198
|
+
etag: data.etag,
|
|
199
|
+
generated_at: data.generated_at,
|
|
200
|
+
}));
|
|
201
|
+
return structuredResult(toolkitResult, {
|
|
202
|
+
etag: data.etag,
|
|
203
|
+
...(typeof data.generated_at === 'string'
|
|
204
|
+
? { generated_at: data.generated_at }
|
|
205
|
+
: {}),
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
catch (e) {
|
|
209
|
+
return errorResult({
|
|
210
|
+
error: e,
|
|
211
|
+
context: {},
|
|
212
|
+
hint: 'Run yootheme_builder_diagnose to verify auth.',
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
// ─── template_summary (T9 — Audit-v3 B.5 token-efficient overview) ────
|
|
217
|
+
/**
|
|
218
|
+
* T9: a one-call structured overview of a template — element counts by
|
|
219
|
+
* type, binding count, max nesting depth, and named landmarks. Lets the
|
|
220
|
+
* agent grasp a 96-node template for ~1 kB instead of pulling the full
|
|
221
|
+
* element_list dump (20 kB+).
|
|
222
|
+
*/
|
|
223
|
+
export async function handleTemplateSummary(client, { template_id }) {
|
|
224
|
+
try {
|
|
225
|
+
const data = await client.get(`/pages/${encodeTemplateId(template_id)}/summary`);
|
|
226
|
+
// F-AUDIT-2 (2026-05-26): template_summary now declares
|
|
227
|
+
// TEMPLATE_SUMMARY_OUTPUT_SCHEMA. The SDK requires
|
|
228
|
+
// `structuredContent` when an outputSchema is present, otherwise
|
|
229
|
+
// it raises `-32602 Output validation error`. Wrap the raw body
|
|
230
|
+
// with `structuredResult` so the text leg (LLM-readable JSON)
|
|
231
|
+
// stays unchanged AND the structuredContent leg validates.
|
|
232
|
+
//
|
|
233
|
+
// Task #46 Friction-3 (2026-05-29): PHP's `json_encode([])` emits
|
|
234
|
+
// `[]` (array) — not `{}` (object). The REST handler emits
|
|
235
|
+
// `counts_by_type: []` for empty templates, but the outputSchema
|
|
236
|
+
// declares `z.record(z.string(), z.number())` which requires an
|
|
237
|
+
// object. The mismatch surfaces as `-32602 counts_by_type
|
|
238
|
+
// expected record, received array`, swallowing the entire response
|
|
239
|
+
// for any empty / freshly-created template. Normalize array→object
|
|
240
|
+
// here so the schema validates and the agent sees the (valid,
|
|
241
|
+
// empty) summary. Same defensive shape applies to any future
|
|
242
|
+
// map-typed REST field that might come back empty.
|
|
243
|
+
const normalized = {
|
|
244
|
+
...data,
|
|
245
|
+
};
|
|
246
|
+
if (Array.isArray(normalized.counts_by_type)) {
|
|
247
|
+
normalized.counts_by_type = {};
|
|
248
|
+
}
|
|
249
|
+
const toolkitResult = jsonResult(normalized);
|
|
250
|
+
return structuredResult({ content: toolkitResult.content }, normalized);
|
|
251
|
+
}
|
|
252
|
+
catch (e) {
|
|
253
|
+
return errorResult({
|
|
254
|
+
error: e,
|
|
255
|
+
context: { template_id },
|
|
256
|
+
hint: 'Verify the template_id exists via yootheme_builder_pages_list.',
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=handlers-read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers-read.js","sourceRoot":"","sources":["../../../src/tools/pages/handlers-read.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page-tool WRITE handlers — `page_save`, `page_publish`, `pages_create`,
|
|
3
|
+
* `pages_delete`. All implement the 3-phase progress contract
|
|
4
|
+
* (PHASE_SEND → PHASE_SERVER → PHASE_CONFIRM). PHASE_SERVER is emitted
|
|
5
|
+
* BEFORE the await so the synthetic intermediate fires even when the
|
|
6
|
+
* REST call ultimately errors — the dispatch IS the boundary, not the
|
|
7
|
+
* response.
|
|
8
|
+
*
|
|
9
|
+
* Split out of `src/tools/pages.ts` (Round-2 R2-A2-CRIT1).
|
|
10
|
+
* Extended with pages_create / pages_delete (v1.2 — C2 + C3).
|
|
11
|
+
*
|
|
12
|
+
* @license MIT
|
|
13
|
+
*/
|
|
14
|
+
import { type RestClient } from '../../client.js';
|
|
15
|
+
import { type HandlerExtra, type ToolResult } from '../tool-builder.js';
|
|
16
|
+
interface SavePublishInput {
|
|
17
|
+
template_id: string;
|
|
18
|
+
etag?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function handlePageSave(client: RestClient, { template_id, etag }: SavePublishInput, extra?: HandlerExtra): Promise<ToolResult>;
|
|
21
|
+
export declare function handlePagePublish(client: RestClient, { template_id, etag }: SavePublishInput, extra?: HandlerExtra): Promise<ToolResult>;
|
|
22
|
+
/**
|
|
23
|
+
* Input shape for the `pages_create` handler. Mirrors the Zod schema
|
|
24
|
+
* `PAGES_CREATE_INPUT` in `./schemas.ts` — kept as a structural
|
|
25
|
+
* `interface` here so the handler has no runtime Zod dependency and
|
|
26
|
+
* accepts whatever the MCP harness has already validated.
|
|
27
|
+
*/
|
|
28
|
+
interface PagesCreateInput {
|
|
29
|
+
readonly title: string;
|
|
30
|
+
readonly slug?: string;
|
|
31
|
+
readonly status?: 'publish' | 'draft' | 'pending' | 'private' | 'future';
|
|
32
|
+
readonly layout?: Record<string, unknown>;
|
|
33
|
+
readonly dry_run?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* `pages_create` — POST `/pages` with the provided body. On
|
|
37
|
+
* `dry_run:true`, the REST handler runs validation Layers 1+2+4
|
|
38
|
+
* without persisting and returns a dry-run report. On non-dry-run
|
|
39
|
+
* success, the REST handler returns 201 with the wire shape of
|
|
40
|
+
* `PAGES_CREATE_OUTPUT_SCHEMA`.
|
|
41
|
+
*/
|
|
42
|
+
export declare function handlePagesCreate(client: RestClient, input: PagesCreateInput, extra?: HandlerExtra): Promise<ToolResult>;
|
|
43
|
+
/**
|
|
44
|
+
* Input shape for the `pages_delete` handler. Mirrors the Zod schema
|
|
45
|
+
* `PAGES_DELETE_INPUT` in `./schemas.ts`. `confirm` is `true` literal —
|
|
46
|
+
* the MCP boundary rejects requests without `confirm:true` before they
|
|
47
|
+
* ever reach this handler.
|
|
48
|
+
*/
|
|
49
|
+
interface PagesDeleteInput {
|
|
50
|
+
readonly post_id: number;
|
|
51
|
+
readonly confirm: true;
|
|
52
|
+
readonly force?: boolean;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* `pages_delete` — DELETE `/pages/{post_id}` with confirm + force in the
|
|
56
|
+
* body. `force:false` (default) trashes via `wp_delete_post(false)`
|
|
57
|
+
* (recoverable via wp-admin). `force:true` hard-deletes the post
|
|
58
|
+
* (irrecoverable). The REST handler returns 200 with the wire shape of
|
|
59
|
+
* `PAGES_DELETE_OUTPUT_SCHEMA` on success.
|
|
60
|
+
*/
|
|
61
|
+
export declare function handlePagesDelete(client: RestClient, input: PagesDeleteInput, extra?: HandlerExtra): Promise<ToolResult>;
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=handlers-write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers-write.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/handlers-write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAKH,KAAK,YAAY,EACjB,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAE5B,UAAU,gBAAgB;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,wBAAsB,cAAc,CAChC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,gBAAgB,EACvC,KAAK,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,CAAC,CAoBrB;AAID,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,gBAAgB,EACvC,KAAK,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,CAAC,CAoBrB;AAID;;;;;GAKG;AACH,UAAU,gBAAgB;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,gBAAgB,EACvB,KAAK,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,CAAC,CAuBrB;AAID;;;;;GAKG;AACH,UAAU,gBAAgB;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,gBAAgB,EACvB,KAAK,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,CAAC,CAuCrB"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page-tool WRITE handlers — `page_save`, `page_publish`, `pages_create`,
|
|
3
|
+
* `pages_delete`. All implement the 3-phase progress contract
|
|
4
|
+
* (PHASE_SEND → PHASE_SERVER → PHASE_CONFIRM). PHASE_SERVER is emitted
|
|
5
|
+
* BEFORE the await so the synthetic intermediate fires even when the
|
|
6
|
+
* REST call ultimately errors — the dispatch IS the boundary, not the
|
|
7
|
+
* response.
|
|
8
|
+
*
|
|
9
|
+
* Split out of `src/tools/pages.ts` (Round-2 R2-A2-CRIT1).
|
|
10
|
+
* Extended with pages_create / pages_delete (v1.2 — C2 + C3).
|
|
11
|
+
*
|
|
12
|
+
* @license MIT
|
|
13
|
+
*/
|
|
14
|
+
import { encodeTemplateId } from '../../client.js';
|
|
15
|
+
import { PHASE_CONFIRM, PHASE_SEND, PHASE_SERVER } from '../progress-phases.js';
|
|
16
|
+
import { createProgressReporter, errorResult, jsonResult, structuredResult, } from '../tool-builder.js';
|
|
17
|
+
// ─── page_save ──────────────────────────────────────────────────────
|
|
18
|
+
export async function handlePageSave(client, { template_id, etag }, extra) {
|
|
19
|
+
const progress = extra ? createProgressReporter(extra) : null;
|
|
20
|
+
await progress?.report(0, 3, PHASE_SEND);
|
|
21
|
+
await progress?.report(1, 3, PHASE_SERVER);
|
|
22
|
+
try {
|
|
23
|
+
const data = await client.post(`/pages/${encodeTemplateId(template_id)}/save`, { etag });
|
|
24
|
+
await progress?.report(2, 3, PHASE_CONFIRM);
|
|
25
|
+
return jsonResult(data);
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
return errorResult({
|
|
29
|
+
error: e,
|
|
30
|
+
context: { template_id, etag },
|
|
31
|
+
hint: 'On 412 (precondition failed) refresh via yootheme_builder_get_etag ' +
|
|
32
|
+
'and retry — someone else edited the page.',
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// ─── page_publish ───────────────────────────────────────────────────
|
|
37
|
+
export async function handlePagePublish(client, { template_id, etag }, extra) {
|
|
38
|
+
const progress = extra ? createProgressReporter(extra) : null;
|
|
39
|
+
await progress?.report(0, 3, PHASE_SEND);
|
|
40
|
+
await progress?.report(1, 3, PHASE_SERVER);
|
|
41
|
+
try {
|
|
42
|
+
const data = await client.post(`/pages/${encodeTemplateId(template_id)}/publish`, { etag });
|
|
43
|
+
await progress?.report(2, 3, PHASE_CONFIRM);
|
|
44
|
+
return jsonResult(data);
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
return errorResult({
|
|
48
|
+
error: e,
|
|
49
|
+
context: { template_id, etag },
|
|
50
|
+
hint: 'On 412 (precondition failed) refresh via yootheme_builder_get_etag ' +
|
|
51
|
+
'and retry.',
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* `pages_create` — POST `/pages` with the provided body. On
|
|
57
|
+
* `dry_run:true`, the REST handler runs validation Layers 1+2+4
|
|
58
|
+
* without persisting and returns a dry-run report. On non-dry-run
|
|
59
|
+
* success, the REST handler returns 201 with the wire shape of
|
|
60
|
+
* `PAGES_CREATE_OUTPUT_SCHEMA`.
|
|
61
|
+
*/
|
|
62
|
+
export async function handlePagesCreate(client, input, extra) {
|
|
63
|
+
const progress = extra ? createProgressReporter(extra) : null;
|
|
64
|
+
await progress?.report(0, 3, PHASE_SEND);
|
|
65
|
+
await progress?.report(1, 3, PHASE_SERVER);
|
|
66
|
+
try {
|
|
67
|
+
const data = await client.post('/pages', { body: input });
|
|
68
|
+
await progress?.report(2, 3, PHASE_CONFIRM);
|
|
69
|
+
return jsonResult(data);
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
return errorResult({
|
|
73
|
+
error: e,
|
|
74
|
+
context: {
|
|
75
|
+
title: input.title,
|
|
76
|
+
slug: input.slug,
|
|
77
|
+
dry_run: input.dry_run ?? false,
|
|
78
|
+
},
|
|
79
|
+
hint: 'Common issues: missing title (400), unknown element type in layout ' +
|
|
80
|
+
'(422), Builder pre-check failed (422 dry-run or wet), post_type other ' +
|
|
81
|
+
'than "page" (403). For dry-run: re-submit without dry_run:true to ' +
|
|
82
|
+
'actually create.',
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* `pages_delete` — DELETE `/pages/{post_id}` with confirm + force in the
|
|
88
|
+
* body. `force:false` (default) trashes via `wp_delete_post(false)`
|
|
89
|
+
* (recoverable via wp-admin). `force:true` hard-deletes the post
|
|
90
|
+
* (irrecoverable). The REST handler returns 200 with the wire shape of
|
|
91
|
+
* `PAGES_DELETE_OUTPUT_SCHEMA` on success.
|
|
92
|
+
*/
|
|
93
|
+
export async function handlePagesDelete(client, input, extra) {
|
|
94
|
+
const progress = extra ? createProgressReporter(extra) : null;
|
|
95
|
+
await progress?.report(0, 3, PHASE_SEND);
|
|
96
|
+
await progress?.report(1, 3, PHASE_SERVER);
|
|
97
|
+
try {
|
|
98
|
+
const data = await client.delete(`/pages/${encodeURIComponent(String(input.post_id))}`, {
|
|
99
|
+
body: {
|
|
100
|
+
confirm: input.confirm,
|
|
101
|
+
force: input.force ?? false,
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
await progress?.report(2, 3, PHASE_CONFIRM);
|
|
105
|
+
// Task #38 (2026-05-29): pages_delete declares
|
|
106
|
+
// `outputSchema: PAGES_DELETE_OUTPUT_SCHEMA` in builders.ts. The
|
|
107
|
+
// host therefore validates `structuredContent` and rejects with
|
|
108
|
+
// `-32602 Output validation error` when it is missing. Use
|
|
109
|
+
// `structuredResult` (mirrors handlePagesList et al.) so the
|
|
110
|
+
// text leg stays LLM-readable AND the structured leg validates.
|
|
111
|
+
const toolkitResult = jsonResult(data);
|
|
112
|
+
return structuredResult({ content: toolkitResult.content }, data);
|
|
113
|
+
}
|
|
114
|
+
catch (e) {
|
|
115
|
+
return errorResult({
|
|
116
|
+
error: e,
|
|
117
|
+
context: {
|
|
118
|
+
post_id: input.post_id,
|
|
119
|
+
force: input.force ?? false,
|
|
120
|
+
},
|
|
121
|
+
hint: 'Common issues: missing confirm:true (400), unknown post id (404), ' +
|
|
122
|
+
'post_type other than "page" (403). For permanent delete pass ' +
|
|
123
|
+
'force:true; default is trash (recoverable via wp-admin).',
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=handlers-write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers-write.js","sourceRoot":"","sources":["../../../src/tools/pages/handlers-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page-tool barrel — public entry-point for the 6 page-level tools:
|
|
3
|
+
*
|
|
4
|
+
* yootheme_builder_pages_list → list templates (tableResult + structuredContent)
|
|
5
|
+
* yootheme_builder_page_get_layout → full layout tree (jsonResult)
|
|
6
|
+
* yootheme_builder_page_get_schema → flat schema (tableResult compact)
|
|
7
|
+
* yootheme_builder_page_save → re-run save-transforms + persist
|
|
8
|
+
* yootheme_builder_page_publish → publish
|
|
9
|
+
* yootheme_builder_get_etag → top-level state ETag (detailResult)
|
|
10
|
+
*
|
|
11
|
+
* Round-2 R2-A2-CRIT1 — split out of the original `src/tools/pages.ts`.
|
|
12
|
+
*
|
|
13
|
+
* @license MIT
|
|
14
|
+
*/
|
|
15
|
+
export { buildPagesTools } from './builders.js';
|
|
16
|
+
export { ETAG_OUTPUT_SCHEMA, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACH,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,GACjC,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page-tool barrel — public entry-point for the 6 page-level tools:
|
|
3
|
+
*
|
|
4
|
+
* yootheme_builder_pages_list → list templates (tableResult + structuredContent)
|
|
5
|
+
* yootheme_builder_page_get_layout → full layout tree (jsonResult)
|
|
6
|
+
* yootheme_builder_page_get_schema → flat schema (tableResult compact)
|
|
7
|
+
* yootheme_builder_page_save → re-run save-transforms + persist
|
|
8
|
+
* yootheme_builder_page_publish → publish
|
|
9
|
+
* yootheme_builder_get_etag → top-level state ETag (detailResult)
|
|
10
|
+
*
|
|
11
|
+
* Round-2 R2-A2-CRIT1 — split out of the original `src/tools/pages.ts`.
|
|
12
|
+
*
|
|
13
|
+
* @license MIT
|
|
14
|
+
*/
|
|
15
|
+
export { buildPagesTools } from './builders.js';
|
|
16
|
+
export { ETAG_OUTPUT_SCHEMA, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACH,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,GACjC,MAAM,cAAc,CAAC"}
|