@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,341 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Element-tool write handlers (add/update/move/clone/delete).
|
|
3
|
+
*
|
|
4
|
+
* Wave G.4.0 split: read handlers + shared types in `./handlers.ts`.
|
|
5
|
+
* Wave G.4.1: `handleElementDelete` consults `deps.elicitation` when
|
|
6
|
+
* `confirm` is undefined — falls back to the explicit preview when
|
|
7
|
+
* elicitation is unavailable.
|
|
8
|
+
* Wave G.5: every handler emits 2-phase client-side progress
|
|
9
|
+
* (`PHASE_SEND` → `PHASE_CONFIRM`) when the caller supplied a
|
|
10
|
+
* `progressToken` — see `../progress-phases.ts` for the contract.
|
|
11
|
+
*
|
|
12
|
+
* @license MIT
|
|
13
|
+
*/
|
|
14
|
+
import { elicitConfirmation } from '@getimo/mcp-toolkit';
|
|
15
|
+
import { encodeElementPath, encodeTemplateId } from '../../client.js';
|
|
16
|
+
import { PHASE_CONFIRM, PHASE_SEND } from '../progress-phases.js';
|
|
17
|
+
import { confirmGuard, createProgressReporter, errorResult, jsonResult, } from '../tool-builder.js';
|
|
18
|
+
// ─── Wave-7 (2026-05-29): props validation ──────────────────────────
|
|
19
|
+
//
|
|
20
|
+
// Cold-AI #5 hand-authored `props.source` / `props.source_extended` via
|
|
21
|
+
// element_update_settings({props:{source}}). YT-Pro's render-side then
|
|
22
|
+
// silently ignored the binding because `source` is not a leaf prop — it
|
|
23
|
+
// lives as a SIBLING of `props` on the element node. The agent had no
|
|
24
|
+
// signal that the call was a no-op until visual verification failed.
|
|
25
|
+
//
|
|
26
|
+
// These keys MUST go through yootheme_builder_element_bind_source (which
|
|
27
|
+
// writes them at the correct nesting level). Reject hand-authored attempts
|
|
28
|
+
// up-front so the agent gets a structured error instead of a silent broken
|
|
29
|
+
// render.
|
|
30
|
+
const RESERVED_BINDING_KEYS = new Set([
|
|
31
|
+
'source',
|
|
32
|
+
'source_extended',
|
|
33
|
+
// YT-Pro UI-only placeholders that customers paste from
|
|
34
|
+
// Inspect/Copy in the visual builder. They never resolve outside the
|
|
35
|
+
// builder runtime so they're useless inside a stored layout.
|
|
36
|
+
'source_node',
|
|
37
|
+
]);
|
|
38
|
+
// Wave-7 (2026-05-29): common cold-AI prop-key typos. The PHP backend
|
|
39
|
+
// silently drops unknown props, so a typo like `title` on a headline (real
|
|
40
|
+
// key is `content`) renders an empty headline. We surface a fix suggestion
|
|
41
|
+
// up-front for the small fixed set of high-frequency mistakes.
|
|
42
|
+
//
|
|
43
|
+
// Format: typo → { element_type → canonical_key }
|
|
44
|
+
// element_type === '*' applies to any element where the typo is known to be
|
|
45
|
+
// a typo on every type that has it.
|
|
46
|
+
const COMMON_PROP_TYPOS = {
|
|
47
|
+
title: {
|
|
48
|
+
headline: 'content',
|
|
49
|
+
subtitle: 'content',
|
|
50
|
+
text: 'content',
|
|
51
|
+
quote: 'content',
|
|
52
|
+
button_item: 'content',
|
|
53
|
+
// Wave-9 F9 (cold-AI #8): `button` accepts `content` at runtime
|
|
54
|
+
// even though the UI-tab fieldset omits it (see
|
|
55
|
+
// Inspector::knownAcceptedButHiddenFields). `title` is the most
|
|
56
|
+
// common cold-AI typo for the button label.
|
|
57
|
+
button: 'content',
|
|
58
|
+
},
|
|
59
|
+
text: {
|
|
60
|
+
headline: 'content',
|
|
61
|
+
text: 'content',
|
|
62
|
+
quote: 'content',
|
|
63
|
+
// Wave-9 F9: same rationale as `title` above — agents reading
|
|
64
|
+
// documentation often type `text` for the button label.
|
|
65
|
+
button: 'content',
|
|
66
|
+
},
|
|
67
|
+
label: {
|
|
68
|
+
button_item: 'content',
|
|
69
|
+
// Wave-9 F9: `label` is a common cold-AI alias for button text.
|
|
70
|
+
button: 'content',
|
|
71
|
+
},
|
|
72
|
+
url: {
|
|
73
|
+
button_item: 'link',
|
|
74
|
+
// Wave-9 F9 (cold-AI #8): `button` accepts `link` at runtime.
|
|
75
|
+
button: 'link',
|
|
76
|
+
},
|
|
77
|
+
href: {
|
|
78
|
+
// Wave-9 F9: HTML-native authors reach for `href` first.
|
|
79
|
+
button_item: 'link',
|
|
80
|
+
button: 'link',
|
|
81
|
+
},
|
|
82
|
+
button_text: {
|
|
83
|
+
button_item: 'content',
|
|
84
|
+
button: 'content',
|
|
85
|
+
},
|
|
86
|
+
button_link: {
|
|
87
|
+
button_item: 'link',
|
|
88
|
+
button: 'link',
|
|
89
|
+
},
|
|
90
|
+
style: {
|
|
91
|
+
button_item: 'button_style',
|
|
92
|
+
},
|
|
93
|
+
size: {
|
|
94
|
+
button_item: 'button_size',
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
function detectPropTypos(props, elementType) {
|
|
98
|
+
if (props === undefined || props === null)
|
|
99
|
+
return [];
|
|
100
|
+
const findings = [];
|
|
101
|
+
for (const key of Object.keys(props)) {
|
|
102
|
+
const map = COMMON_PROP_TYPOS[key];
|
|
103
|
+
if (map === undefined)
|
|
104
|
+
continue;
|
|
105
|
+
const suggested = map[elementType];
|
|
106
|
+
if (suggested !== undefined) {
|
|
107
|
+
findings.push({ typo: key, suggested });
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return findings;
|
|
111
|
+
}
|
|
112
|
+
function rejectOnPropTypos(props, elementType) {
|
|
113
|
+
const findings = detectPropTypos(props, elementType);
|
|
114
|
+
if (findings.length === 0)
|
|
115
|
+
return null;
|
|
116
|
+
const summary = findings
|
|
117
|
+
.map((f) => `\`${f.typo}\` → did you mean \`${f.suggested}\`?`)
|
|
118
|
+
.join('; ');
|
|
119
|
+
return errorResult({
|
|
120
|
+
error: new Error(`Unknown prop(s) for element type \`${elementType}\`: ${summary}. ` +
|
|
121
|
+
'YT-Pro silently drops unknown props server-side, so the element would render empty. ' +
|
|
122
|
+
'Call yootheme_builder_element_type_get_schema to see the canonical prop keys.'),
|
|
123
|
+
context: {
|
|
124
|
+
element_type: elementType,
|
|
125
|
+
findings,
|
|
126
|
+
},
|
|
127
|
+
hint: 'Re-try with the suggested canonical key, or fetch the schema first: ' +
|
|
128
|
+
`yootheme_builder_element_type_get_schema({ element_type: "${elementType}" }).`,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
function validatePropsForReservedKeys(props, elementType) {
|
|
132
|
+
if (props === undefined || props === null)
|
|
133
|
+
return null;
|
|
134
|
+
const offending = [];
|
|
135
|
+
for (const key of Object.keys(props)) {
|
|
136
|
+
if (RESERVED_BINDING_KEYS.has(key)) {
|
|
137
|
+
offending.push(key);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (offending.length === 0)
|
|
141
|
+
return null;
|
|
142
|
+
return errorResult({
|
|
143
|
+
error: new Error(`Reserved binding key(s) ${offending
|
|
144
|
+
.map((k) => `\`${k}\``)
|
|
145
|
+
.join(', ')} are NOT valid props for element type \`${elementType}\`. ` +
|
|
146
|
+
`Source binding lives as a SIBLING of \`props\` on the element node, ` +
|
|
147
|
+
`NOT nested inside props. Use \`yootheme_builder_element_bind_source\` ` +
|
|
148
|
+
`to set the source — it writes the binding at the correct nesting level. ` +
|
|
149
|
+
`For per-prop leaf bindings (headline.content, etc.) use \`element_bind_source\` ` +
|
|
150
|
+
`with the prop name in its \`props\` argument.`),
|
|
151
|
+
context: { element_type: elementType, offending_keys: offending },
|
|
152
|
+
hint: 'Run yootheme_builder_element_type_get_schema to see the binding contract ' +
|
|
153
|
+
'(do_not section lists this anti-pattern). Then call element_bind_source.',
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
// ─── element_add ─────────────────────────────────────────────────────
|
|
157
|
+
export async function handleElementAdd({ client }, input, extra) {
|
|
158
|
+
const { template_id, etag, ...body } = input;
|
|
159
|
+
// Wave-7: guard against hand-authored source/source_extended in props.
|
|
160
|
+
const propsRejection = validatePropsForReservedKeys(input.props, input.element_type);
|
|
161
|
+
if (propsRejection !== null)
|
|
162
|
+
return propsRejection;
|
|
163
|
+
// Wave-7: guard against common prop-key typos (title→content etc.).
|
|
164
|
+
const typoRejection = rejectOnPropTypos(input.props, input.element_type);
|
|
165
|
+
if (typoRejection !== null)
|
|
166
|
+
return typoRejection;
|
|
167
|
+
const progress = extra ? createProgressReporter(extra) : null;
|
|
168
|
+
await progress?.report(0, 2, PHASE_SEND);
|
|
169
|
+
try {
|
|
170
|
+
const data = await client.post(`/pages/${encodeTemplateId(template_id)}/elements`, { body, etag });
|
|
171
|
+
await progress?.report(2, 2, PHASE_CONFIRM);
|
|
172
|
+
return jsonResult(data);
|
|
173
|
+
}
|
|
174
|
+
catch (e) {
|
|
175
|
+
return errorResult({
|
|
176
|
+
error: e,
|
|
177
|
+
context: input,
|
|
178
|
+
hint: 'On 412 refresh via yootheme_builder_get_etag and retry. On 400 ' +
|
|
179
|
+
'check `element_type` is valid via yootheme_builder_element_types_list.',
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
// ─── element_update_settings ─────────────────────────────────────────
|
|
184
|
+
export async function handleElementUpdateSettings({ client }, input, extra) {
|
|
185
|
+
const { template_id, element_path, props, merge, etag } = input;
|
|
186
|
+
// Wave-7: guard against hand-authored source/source_extended in props.
|
|
187
|
+
// element_path is the only identity we have at this layer; the agent gets
|
|
188
|
+
// a clear message anyway because the offending key is named explicitly.
|
|
189
|
+
const propsRejection = validatePropsForReservedKeys(props, `<at ${element_path}>`);
|
|
190
|
+
if (propsRejection !== null)
|
|
191
|
+
return propsRejection;
|
|
192
|
+
const encoded = encodeElementPath(element_path);
|
|
193
|
+
const progress = extra ? createProgressReporter(extra) : null;
|
|
194
|
+
await progress?.report(0, 2, PHASE_SEND);
|
|
195
|
+
try {
|
|
196
|
+
// T5 / F-12: forward `merge` only when explicitly true so older PHP
|
|
197
|
+
// builds (which ignore unknown keys anyway) get the same byte-for-
|
|
198
|
+
// byte body they did before.
|
|
199
|
+
const body = { props };
|
|
200
|
+
if (merge === true) {
|
|
201
|
+
body.merge = true;
|
|
202
|
+
}
|
|
203
|
+
const data = await client.put(`/pages/${encodeTemplateId(template_id)}/elements/${encoded}/settings`, { body, etag });
|
|
204
|
+
await progress?.report(2, 2, PHASE_CONFIRM);
|
|
205
|
+
return jsonResult(data);
|
|
206
|
+
}
|
|
207
|
+
catch (e) {
|
|
208
|
+
return errorResult({
|
|
209
|
+
error: e,
|
|
210
|
+
context: { template_id, element_path },
|
|
211
|
+
hint: 'On 412 refresh via yootheme_builder_get_etag and retry. To merge ' +
|
|
212
|
+
'props instead of replacing, pass `merge:true` (server deep-merges ' +
|
|
213
|
+
'the request into current props).',
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// ─── element_move ────────────────────────────────────────────────────
|
|
218
|
+
export async function handleElementMove({ client }, input, extra) {
|
|
219
|
+
const { template_id, element_path, to_parent_path, to_index, etag } = input;
|
|
220
|
+
const encoded = encodeElementPath(element_path);
|
|
221
|
+
const progress = extra ? createProgressReporter(extra) : null;
|
|
222
|
+
await progress?.report(0, 2, PHASE_SEND);
|
|
223
|
+
try {
|
|
224
|
+
const data = await client.post(`/pages/${encodeTemplateId(template_id)}/elements/${encoded}/move`, { body: { to_parent_path, to_index }, etag });
|
|
225
|
+
await progress?.report(2, 2, PHASE_CONFIRM);
|
|
226
|
+
return jsonResult(data);
|
|
227
|
+
}
|
|
228
|
+
catch (e) {
|
|
229
|
+
return errorResult({
|
|
230
|
+
error: e,
|
|
231
|
+
context: { template_id, element_path, to_parent_path, to_index },
|
|
232
|
+
hint: 'Verify destination parent accepts the element type. On 412 refresh ' +
|
|
233
|
+
'ETag and retry.',
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// ─── element_clone ───────────────────────────────────────────────────
|
|
238
|
+
export async function handleElementClone({ client }, input, extra) {
|
|
239
|
+
const { template_id, element_path, etag } = input;
|
|
240
|
+
const encoded = encodeElementPath(element_path);
|
|
241
|
+
const progress = extra ? createProgressReporter(extra) : null;
|
|
242
|
+
await progress?.report(0, 2, PHASE_SEND);
|
|
243
|
+
try {
|
|
244
|
+
const data = await client.post(`/pages/${encodeTemplateId(template_id)}/elements/${encoded}/clone`, { etag });
|
|
245
|
+
await progress?.report(2, 2, PHASE_CONFIRM);
|
|
246
|
+
return jsonResult(data);
|
|
247
|
+
}
|
|
248
|
+
catch (e) {
|
|
249
|
+
return errorResult({
|
|
250
|
+
error: e,
|
|
251
|
+
context: { template_id, element_path },
|
|
252
|
+
hint: 'On 412 refresh via yootheme_builder_get_etag and retry.',
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
// ─── element_delete (destructive — elicitation + confirm-guard) ─────
|
|
257
|
+
//
|
|
258
|
+
// Wave G.4.1 — destructive confirm via MCP elicitation. Progress
|
|
259
|
+
// reports (Wave G.5) only start AFTER the confirm gate clears.
|
|
260
|
+
// Wave-6 R4 (2026-05-29): Defensive truthiness for the confirm gate.
|
|
261
|
+
// Cold-AI #4 reported the gate kept firing despite `confirm:true`. The Zod
|
|
262
|
+
// schema already coerces only strict booleans (anything non-boolean is
|
|
263
|
+
// rejected upstream as invalid_arguments), but we widen the in-handler
|
|
264
|
+
// check to accept the literal string `"true"` / numeric `1` as a safety net
|
|
265
|
+
// in case a future wrapper round-trips the arg through JSON re-encoding.
|
|
266
|
+
function isConfirmedTrue(v) {
|
|
267
|
+
if (v === true)
|
|
268
|
+
return true;
|
|
269
|
+
if (typeof v === 'string' && v.toLowerCase() === 'true')
|
|
270
|
+
return true;
|
|
271
|
+
if (typeof v === 'number' && v === 1)
|
|
272
|
+
return true;
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
function isConfirmedFalse(v) {
|
|
276
|
+
if (v === false)
|
|
277
|
+
return true;
|
|
278
|
+
if (typeof v === 'string' && v.toLowerCase() === 'false')
|
|
279
|
+
return true;
|
|
280
|
+
if (typeof v === 'number' && v === 0)
|
|
281
|
+
return true;
|
|
282
|
+
return false;
|
|
283
|
+
}
|
|
284
|
+
async function resolveDeleteConfirm(elicitation, template_id, element_path, confirm) {
|
|
285
|
+
// Wave-6 R4: explicit truthy check — confirm:true (any form) bypasses
|
|
286
|
+
// the elicitation/preview path immediately.
|
|
287
|
+
if (isConfirmedTrue(confirm))
|
|
288
|
+
return null;
|
|
289
|
+
if (isConfirmedFalse(confirm) || !elicitation) {
|
|
290
|
+
return confirmGuard({
|
|
291
|
+
operation: 'delete element',
|
|
292
|
+
details: {
|
|
293
|
+
template_id,
|
|
294
|
+
element_path,
|
|
295
|
+
// R4: echo back what was received so the agent can compare.
|
|
296
|
+
// Wave-7 (2026-05-29): force-encode undefined to null so the
|
|
297
|
+
// key survives JSON.stringify in the agent-facing payload.
|
|
298
|
+
// Without this the agent saw NO received_confirm field at all
|
|
299
|
+
// (key dropped by serializer) and could not diff sent vs
|
|
300
|
+
// received — looked like the value was accepted.
|
|
301
|
+
received_confirm: confirm === undefined ? null : confirm,
|
|
302
|
+
expected: 'confirm: true (boolean)',
|
|
303
|
+
},
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
const accepted = await elicitConfirmation(elicitation, `Permanently delete element at "${element_path}" in template ` +
|
|
307
|
+
`"${template_id}"? This cannot be undone.`);
|
|
308
|
+
return accepted
|
|
309
|
+
? null
|
|
310
|
+
: confirmGuard({
|
|
311
|
+
operation: 'delete element',
|
|
312
|
+
details: { template_id, element_path },
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
export async function handleElementDelete({ client, elicitation }, input, extra) {
|
|
316
|
+
const { template_id, element_path, etag, confirm } = input;
|
|
317
|
+
const blocked = await resolveDeleteConfirm(elicitation, template_id, element_path, confirm);
|
|
318
|
+
if (blocked)
|
|
319
|
+
return blocked;
|
|
320
|
+
const encoded = encodeElementPath(element_path);
|
|
321
|
+
const progress = extra ? createProgressReporter(extra) : null;
|
|
322
|
+
await progress?.report(0, 2, PHASE_SEND);
|
|
323
|
+
try {
|
|
324
|
+
// Wave-12 / Cold-AI #5 F13 (restored Wave-13 post-merge): forward
|
|
325
|
+
// `{confirm:true}` as JSON body so the PHP confirm-guard accepts the
|
|
326
|
+
// delete. Without it the guard returns `requires_confirm:true` and
|
|
327
|
+
// the caller loops forever.
|
|
328
|
+
const data = await client.delete(`/pages/${encodeTemplateId(template_id)}/elements/${encoded}`, { etag, body: { confirm: true } });
|
|
329
|
+
await progress?.report(2, 2, PHASE_CONFIRM);
|
|
330
|
+
return jsonResult(data);
|
|
331
|
+
}
|
|
332
|
+
catch (e) {
|
|
333
|
+
return errorResult({
|
|
334
|
+
error: e,
|
|
335
|
+
context: { template_id, element_path },
|
|
336
|
+
hint: 'On 412 refresh via yootheme_builder_get_etag and retry. On 404 the ' +
|
|
337
|
+
'element may already be gone — verify with yootheme_builder_element_list.',
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
//# sourceMappingURL=handlers-write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers-write.js","sourceRoot":"","sources":["../../../src/tools/elements/handlers-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Element-tool read handlers + shared types/schemas.
|
|
3
|
+
*
|
|
4
|
+
* Split out of the original `src/tools/elements.ts` (Wave G.4.0). Write
|
|
5
|
+
* handlers (add/update/move/clone/delete) live in `./handlers-write.ts`
|
|
6
|
+
* to keep each file under the 200-LoC budget.
|
|
7
|
+
*
|
|
8
|
+
* Handler responsibilities:
|
|
9
|
+
* - call the REST endpoint via `deps.client`,
|
|
10
|
+
* - map REST data to the toolkit output builders (`tableResult`,
|
|
11
|
+
* `detailResult`),
|
|
12
|
+
* - wrap in `structuredResult` to carry the typed
|
|
13
|
+
* `structuredContent` payload,
|
|
14
|
+
* - on error, return `errorResult` with `context` + `hint`.
|
|
15
|
+
*
|
|
16
|
+
* @license MIT
|
|
17
|
+
*/
|
|
18
|
+
import { z } from 'zod';
|
|
19
|
+
import { type RestClient } from '../../client.js';
|
|
20
|
+
import type { McpServerWithElicitation } from '../elicitation.js';
|
|
21
|
+
import { type ToolResult } from '../tool-builder.js';
|
|
22
|
+
export declare const ELEMENT_LIST_OUTPUT_SCHEMA: z.ZodObject<{
|
|
23
|
+
items: z.ZodArray<z.ZodObject<{
|
|
24
|
+
path: z.ZodOptional<z.ZodString>;
|
|
25
|
+
rel_path: z.ZodOptional<z.ZodString>;
|
|
26
|
+
element_type: z.ZodOptional<z.ZodString>;
|
|
27
|
+
parent_path: z.ZodOptional<z.ZodString>;
|
|
28
|
+
label: z.ZodOptional<z.ZodString>;
|
|
29
|
+
has_binding: z.ZodOptional<z.ZodBoolean>;
|
|
30
|
+
}, z.core.$loose>>;
|
|
31
|
+
total: z.ZodNumber;
|
|
32
|
+
template_id: z.ZodString;
|
|
33
|
+
next_cursor: z.ZodOptional<z.ZodString>;
|
|
34
|
+
projected_fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
35
|
+
available_fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
36
|
+
unknown_fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
export declare const ELEMENT_GET_OUTPUT_SCHEMA: z.ZodObject<{
|
|
39
|
+
template_id: z.ZodString;
|
|
40
|
+
element_path: z.ZodString;
|
|
41
|
+
element_type: z.ZodString;
|
|
42
|
+
label: z.ZodOptional<z.ZodString>;
|
|
43
|
+
props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
44
|
+
children_count: z.ZodNumber;
|
|
45
|
+
}, z.core.$strip>;
|
|
46
|
+
export interface ElementsHandlerDeps {
|
|
47
|
+
readonly client: RestClient;
|
|
48
|
+
/**
|
|
49
|
+
* Optional MCP elicitation capability. When present, destructive
|
|
50
|
+
* tools (`element_delete`) prompt the user for confirmation via the
|
|
51
|
+
* elicitation channel instead of demanding an explicit
|
|
52
|
+
* `confirm: true` round-trip. When absent, tools fall back to the
|
|
53
|
+
* preview-then-retry flow.
|
|
54
|
+
*/
|
|
55
|
+
readonly elicitation?: McpServerWithElicitation;
|
|
56
|
+
}
|
|
57
|
+
export declare function handleElementList({ client }: ElementsHandlerDeps, { template_id, fields, root_path, depth, limit, cursor, }: {
|
|
58
|
+
template_id: string;
|
|
59
|
+
fields?: readonly string[];
|
|
60
|
+
root_path?: string;
|
|
61
|
+
depth?: number;
|
|
62
|
+
limit?: number;
|
|
63
|
+
cursor?: string;
|
|
64
|
+
}): Promise<ToolResult>;
|
|
65
|
+
export declare function handleElementGet({ client }: ElementsHandlerDeps, { template_id, element_path }: {
|
|
66
|
+
template_id: string;
|
|
67
|
+
element_path: string;
|
|
68
|
+
}): Promise<ToolResult>;
|
|
69
|
+
export { handleElementAdd, handleElementClone, handleElementDelete, handleElementMove, handleElementUpdateSettings, } from './handlers-write.js';
|
|
70
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/tools/elements/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAuC,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAalE,OAAO,EAGH,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAI5B,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;iBA6DrC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;iBAOpC,CAAC;AAIH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACnD;AAsDD,wBAAsB,iBAAiB,CACnC,EAAE,MAAM,EAAE,EAAE,mBAAmB,EAC/B,EACI,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,KAAK,EACL,MAAM,GACT,EAAE;IACC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,GACF,OAAO,CAAC,UAAU,CAAC,CAgIrB;AAID,wBAAsB,gBAAgB,CAClC,EAAE,MAAM,EAAE,EAAE,mBAAmB,EAC/B,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC7E,OAAO,CAAC,UAAU,CAAC,CA8CrB;AAGD,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,GAC9B,MAAM,qBAAqB,CAAC"}
|