@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,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* W6.3 — shared helper for the per-handler `pool.resolve(site_id)`
|
|
3
|
+
* pattern.
|
|
4
|
+
*
|
|
5
|
+
* Every tool handler does the same dance:
|
|
6
|
+
* 1. Extract `site_id` from args (optional, undefined → default site).
|
|
7
|
+
* 2. Call `pool.resolve(site_id)`.
|
|
8
|
+
* 3. Translate `NoDefaultSiteError` / `UnknownSiteError` into a
|
|
9
|
+
* structured `errorResult` so the agent can self-recover.
|
|
10
|
+
* 4. Hand back `{client, site}` for downstream use.
|
|
11
|
+
*
|
|
12
|
+
* Centralising the dance keeps the 24 handler bodies short and ensures
|
|
13
|
+
* the error wording stays consistent across the tool surface.
|
|
14
|
+
*
|
|
15
|
+
* @license MIT
|
|
16
|
+
*/
|
|
17
|
+
import { RestError } from '../errors.js';
|
|
18
|
+
import { NoDefaultSiteError, UnknownSiteError, } from '../sites/client-pool.js';
|
|
19
|
+
import { jsonResult } from './tool-builder.js';
|
|
20
|
+
/**
|
|
21
|
+
* Resolve a site_id through the pool, translating the W4 typed errors
|
|
22
|
+
* into structured `ToolResult` envelopes. Non-typed errors (genuine
|
|
23
|
+
* fetch failures during the platform probe, secret-resolver crashes,
|
|
24
|
+
* etc.) re-throw so the handler's outer try/catch can shape them with
|
|
25
|
+
* domain-specific hints.
|
|
26
|
+
*/
|
|
27
|
+
export async function resolveSiteOrError(pool, siteId) {
|
|
28
|
+
try {
|
|
29
|
+
const { client, site } = await pool.resolve(siteId);
|
|
30
|
+
return { ok: true, client, site };
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
if (e instanceof NoDefaultSiteError) {
|
|
34
|
+
// Custom payload to surface `code: 'no_default_site'` —
|
|
35
|
+
// `errorResult` only forwards `code` for RestError, but
|
|
36
|
+
// agents branch on `error.code === 'no_default_site'` to
|
|
37
|
+
// route the user into the setup wizard.
|
|
38
|
+
return {
|
|
39
|
+
ok: false,
|
|
40
|
+
error: jsonResult({
|
|
41
|
+
error: e.message,
|
|
42
|
+
code: e.code,
|
|
43
|
+
context: { site_id: siteId ?? null },
|
|
44
|
+
hint: 'No site_id supplied and no default site is configured. '
|
|
45
|
+
+ 'Use yootheme_builder_sites_list to discover available IDs '
|
|
46
|
+
+ 'and pass one as site_id, or run `yt-builder-mcp setup '
|
|
47
|
+
+ 'add-site --default` to configure a default.',
|
|
48
|
+
}, { isError: true }),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (e instanceof UnknownSiteError) {
|
|
52
|
+
return {
|
|
53
|
+
ok: false,
|
|
54
|
+
error: jsonResult({
|
|
55
|
+
error: e.message,
|
|
56
|
+
code: e.code,
|
|
57
|
+
context: {
|
|
58
|
+
site_id: siteId ?? null,
|
|
59
|
+
available: [...e.available],
|
|
60
|
+
},
|
|
61
|
+
hint: 'The requested site_id is not in the registry. '
|
|
62
|
+
+ 'Use yootheme_builder_sites_list to list configured IDs '
|
|
63
|
+
+ 'and retry with one of them.',
|
|
64
|
+
}, { isError: true }),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
// Unknown failure (probe crash, secret-resolver crash, etc.) —
|
|
68
|
+
// re-throw so the handler's domain-specific catch can shape it
|
|
69
|
+
// with the right hint (e.g. "verify YTB_MCP_SITE_URL …" for a
|
|
70
|
+
// health probe, "verify the template_id …" for a page op).
|
|
71
|
+
throw e;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* W12-R2A (A4-F3 / A5-S2) — resolve a site + execute a handler-body with
|
|
76
|
+
* a 1-shot 401 retry.
|
|
77
|
+
*
|
|
78
|
+
* Bearer-rotation use case: a site's bearer is revoked / rotated /
|
|
79
|
+
* expired AFTER the pool cached a {@link RestClient} for it. The next
|
|
80
|
+
* call returns HTTP 401. Without retry the agent has to be told
|
|
81
|
+
* "restart your client". With retry we drop the cached client (so the
|
|
82
|
+
* next `pool.resolve` re-runs `secretResolver.resolve`), then call the
|
|
83
|
+
* handler-body again exactly once. If the second attempt also returns
|
|
84
|
+
* 401, we surface a structured `bearer_invalid` error with an
|
|
85
|
+
* actionable hint pointing at `sites_test` / sites.json.
|
|
86
|
+
*
|
|
87
|
+
* Scope: deliberately ONE retry. A second 401 means the bearer is
|
|
88
|
+
* genuinely revoked at the source — looping forever wastes tokens and
|
|
89
|
+
* masks the real problem.
|
|
90
|
+
*
|
|
91
|
+
* The wrapper handles {@link NoDefaultSiteError} / {@link
|
|
92
|
+
* UnknownSiteError} via the same `resolveSiteOrError` envelope so
|
|
93
|
+
* call-sites don't have to duplicate the structured-error wording.
|
|
94
|
+
* Non-401 thrown errors propagate to the handler's outer try/catch
|
|
95
|
+
* (or the SDK boundary) untouched — only HTTP 401 triggers the retry
|
|
96
|
+
* / structured-error path.
|
|
97
|
+
*
|
|
98
|
+
* Usage (post-migration):
|
|
99
|
+
*
|
|
100
|
+
* handler: async ({ site_id, ...rest }) =>
|
|
101
|
+
* withSiteRetry(pool, site_id, async (client, site) =>
|
|
102
|
+
* withSiteMeta(await handleX(makeDeps(client), rest), site)),
|
|
103
|
+
*/
|
|
104
|
+
export async function withSiteRetry(pool, siteId, fn) {
|
|
105
|
+
const r1 = await resolveSiteOrError(pool, siteId);
|
|
106
|
+
if (!r1.ok)
|
|
107
|
+
return r1.error;
|
|
108
|
+
try {
|
|
109
|
+
return await fn(r1.client, r1.site);
|
|
110
|
+
}
|
|
111
|
+
catch (e) {
|
|
112
|
+
if (!(e instanceof RestError) || e.status !== 401) {
|
|
113
|
+
throw e;
|
|
114
|
+
}
|
|
115
|
+
// First attempt got 401 — invalidate the cached client so the
|
|
116
|
+
// pool re-runs `secretResolver.resolve` (this picks up a rotated
|
|
117
|
+
// Bearer from `op` / a freshly-edited sites.json) and try once
|
|
118
|
+
// more. Use the resolved id from r1.site so the invalidation
|
|
119
|
+
// works even when `siteId` was undefined (default-site case).
|
|
120
|
+
pool.invalidate(r1.site.id);
|
|
121
|
+
const r2 = await resolveSiteOrError(pool, siteId);
|
|
122
|
+
if (!r2.ok)
|
|
123
|
+
return r2.error;
|
|
124
|
+
try {
|
|
125
|
+
return await fn(r2.client, r2.site);
|
|
126
|
+
}
|
|
127
|
+
catch (e2) {
|
|
128
|
+
if (e2 instanceof RestError && e2.status === 401) {
|
|
129
|
+
// Second 401 — surface a structured error so the agent
|
|
130
|
+
// can route the user to verification + sites.json edit
|
|
131
|
+
// instead of silently failing.
|
|
132
|
+
return jsonResult({
|
|
133
|
+
error: e2.message,
|
|
134
|
+
status: 401,
|
|
135
|
+
code: 'bearer_invalid',
|
|
136
|
+
context: { site_id: r2.site.id },
|
|
137
|
+
hint: 'Bearer rejected twice in a row (cached + freshly-resolved). '
|
|
138
|
+
+ 'The bearer is either rotated or revoked. Run '
|
|
139
|
+
+ '`npx -y @wootsup/yt-builder-mcp test-site '
|
|
140
|
+
+ `${r2.site.id}\` to verify, then update sites.json `
|
|
141
|
+
+ '(or the 1Password item if you used --token-ref).',
|
|
142
|
+
}, { isError: true });
|
|
143
|
+
}
|
|
144
|
+
throw e2;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=pool-resolve-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool-resolve-helper.js","sourceRoot":"","sources":["../../src/tools/pool-resolve-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wave G.5 + Round-1.5 — shared progress labels for write handlers.
|
|
3
|
+
*
|
|
4
|
+
* Two contracts coexist:
|
|
5
|
+
*
|
|
6
|
+
* ─── 2-phase (element_* mutations) ───────────────────────────────────
|
|
7
|
+
*
|
|
8
|
+
* 0/2 PHASE_SEND — before the REST call,
|
|
9
|
+
* 2/2 PHASE_CONFIRM — after a 2xx response.
|
|
10
|
+
*
|
|
11
|
+
* Used by the five element_* write tools (add / update_settings / move /
|
|
12
|
+
* clone / delete). Each is a single shallow `wp_option('yootheme')` write
|
|
13
|
+
* — the request completes in tens of milliseconds and there is no
|
|
14
|
+
* client-observable window between dispatch and confirmation that would
|
|
15
|
+
* benefit from a synthetic intermediate event.
|
|
16
|
+
*
|
|
17
|
+
* ─── 3-phase (page_save / page_publish) ──────────────────────────────
|
|
18
|
+
*
|
|
19
|
+
* 0/3 PHASE_SEND — before the REST call,
|
|
20
|
+
* 1/3 PHASE_SERVER — synthetic intermediate, emitted AFTER dispatch
|
|
21
|
+
* starts but BEFORE the await resolves; lets the
|
|
22
|
+
* MCP-client UI render a mid-flight indicator
|
|
23
|
+
* matching the reference UX intent without
|
|
24
|
+
* requiring an SSE-streaming REST endpoint.
|
|
25
|
+
* 2/3 PHASE_CONFIRM — after a 2xx response.
|
|
26
|
+
*
|
|
27
|
+
* Reserved for the two page-level mutations (`page_save` /
|
|
28
|
+
* `page_publish`). Both trigger a save-transform pass + a full layout
|
|
29
|
+
* re-serialisation on the PHP side; on large templates this can take
|
|
30
|
+
* 500-3000 ms — well over the perceptual threshold where a mid-flight
|
|
31
|
+
* progress signal materially improves the operator experience.
|
|
32
|
+
*
|
|
33
|
+
* Round-1.5 revert: an earlier Round-1 audit amendment collapsed the
|
|
34
|
+
* page_save / page_publish handlers down to 2-phase on the grounds that
|
|
35
|
+
* the synthetic intermediate was "theatre". Thomas-mandate 2026-05-22
|
|
36
|
+
* reinstates the 3-phase contract: the intermediate is honest if it
|
|
37
|
+
* marks an observable boundary (dispatch-start → await-resolved is one
|
|
38
|
+
* such boundary even without server-side streaming, because the
|
|
39
|
+
* dispatch itself is non-blocking from the host UI's perspective).
|
|
40
|
+
*
|
|
41
|
+
* @license MIT
|
|
42
|
+
*/
|
|
43
|
+
export declare const PHASE_SEND = "Sending write request";
|
|
44
|
+
export declare const PHASE_CONFIRM = "Confirmed by server";
|
|
45
|
+
export declare const PHASE_SERVER = "Server processing";
|
|
46
|
+
//# sourceMappingURL=progress-phases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-phases.d.ts","sourceRoot":"","sources":["../../src/tools/progress-phases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAGH,eAAO,MAAM,UAAU,0BAA0B,CAAC;AAClD,eAAO,MAAM,aAAa,wBAAwB,CAAC;AAGnD,eAAO,MAAM,YAAY,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wave G.5 + Round-1.5 — shared progress labels for write handlers.
|
|
3
|
+
*
|
|
4
|
+
* Two contracts coexist:
|
|
5
|
+
*
|
|
6
|
+
* ─── 2-phase (element_* mutations) ───────────────────────────────────
|
|
7
|
+
*
|
|
8
|
+
* 0/2 PHASE_SEND — before the REST call,
|
|
9
|
+
* 2/2 PHASE_CONFIRM — after a 2xx response.
|
|
10
|
+
*
|
|
11
|
+
* Used by the five element_* write tools (add / update_settings / move /
|
|
12
|
+
* clone / delete). Each is a single shallow `wp_option('yootheme')` write
|
|
13
|
+
* — the request completes in tens of milliseconds and there is no
|
|
14
|
+
* client-observable window between dispatch and confirmation that would
|
|
15
|
+
* benefit from a synthetic intermediate event.
|
|
16
|
+
*
|
|
17
|
+
* ─── 3-phase (page_save / page_publish) ──────────────────────────────
|
|
18
|
+
*
|
|
19
|
+
* 0/3 PHASE_SEND — before the REST call,
|
|
20
|
+
* 1/3 PHASE_SERVER — synthetic intermediate, emitted AFTER dispatch
|
|
21
|
+
* starts but BEFORE the await resolves; lets the
|
|
22
|
+
* MCP-client UI render a mid-flight indicator
|
|
23
|
+
* matching the reference UX intent without
|
|
24
|
+
* requiring an SSE-streaming REST endpoint.
|
|
25
|
+
* 2/3 PHASE_CONFIRM — after a 2xx response.
|
|
26
|
+
*
|
|
27
|
+
* Reserved for the two page-level mutations (`page_save` /
|
|
28
|
+
* `page_publish`). Both trigger a save-transform pass + a full layout
|
|
29
|
+
* re-serialisation on the PHP side; on large templates this can take
|
|
30
|
+
* 500-3000 ms — well over the perceptual threshold where a mid-flight
|
|
31
|
+
* progress signal materially improves the operator experience.
|
|
32
|
+
*
|
|
33
|
+
* Round-1.5 revert: an earlier Round-1 audit amendment collapsed the
|
|
34
|
+
* page_save / page_publish handlers down to 2-phase on the grounds that
|
|
35
|
+
* the synthetic intermediate was "theatre". Thomas-mandate 2026-05-22
|
|
36
|
+
* reinstates the 3-phase contract: the intermediate is honest if it
|
|
37
|
+
* marks an observable boundary (dispatch-start → await-resolved is one
|
|
38
|
+
* such boundary even without server-side streaming, because the
|
|
39
|
+
* dispatch itself is non-blocking from the host UI's perspective).
|
|
40
|
+
*
|
|
41
|
+
* @license MIT
|
|
42
|
+
*/
|
|
43
|
+
// ── 2-phase (element_*) ─────────────────────────────────────────────
|
|
44
|
+
export const PHASE_SEND = 'Sending write request';
|
|
45
|
+
export const PHASE_CONFIRM = 'Confirmed by server';
|
|
46
|
+
// ── 3-phase intermediate (page_save / page_publish only) ────────────
|
|
47
|
+
export const PHASE_SERVER = 'Server processing';
|
|
48
|
+
//# sourceMappingURL=progress-phases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-phases.js","sourceRoot":"","sources":["../../src/tools/progress-phases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,uEAAuE;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAAC;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAEnD,uEAAuE;AACvE,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Zod schemas — Wave-6 Fix 20.
|
|
3
|
+
*
|
|
4
|
+
* Centralises the schema definitions reused across pages, elements and
|
|
5
|
+
* sources tool builders, so a description tweak lands in one place
|
|
6
|
+
* instead of three.
|
|
7
|
+
*
|
|
8
|
+
* @license MIT
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
export declare const TEMPLATE_ID: z.ZodString;
|
|
12
|
+
export declare const ELEMENT_PATH: z.ZodString;
|
|
13
|
+
export declare const ETAG: z.ZodString;
|
|
14
|
+
export declare const PROPS: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
15
|
+
/**
|
|
16
|
+
* W5 — Multi-Site selector. Every tool exposes this field as an OPTIONAL
|
|
17
|
+
* first-position input so an agent can target a specific site while
|
|
18
|
+
* defaulting to the primary site when omitted. The handler bodies do not
|
|
19
|
+
* yet read this field — W6 wires `pool.resolve(site_id)` into each
|
|
20
|
+
* handler. Keep this addition non-breaking: the regex is permissive enough
|
|
21
|
+
* to allow customer ids like `wp-acme` or `joomla_beta`, and the field is
|
|
22
|
+
* optional so existing clients continue to work without modification.
|
|
23
|
+
*/
|
|
24
|
+
export declare const SITE_ID_SCHEMA: z.ZodOptional<z.ZodString>;
|
|
25
|
+
//# sourceMappingURL=shared-schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-schemas.d.ts","sourceRoot":"","sources":["../../src/tools/shared-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,WAAW,aAKnB,CAAC;AASN,eAAO,MAAM,YAAY,aAoBpB,CAAC;AAEN,eAAO,MAAM,IAAI,aAYZ,CAAC;AAEN,eAAO,MAAM,KAAK,wCAKb,CAAC;AAEN;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,4BAOtB,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Zod schemas — Wave-6 Fix 20.
|
|
3
|
+
*
|
|
4
|
+
* Centralises the schema definitions reused across pages, elements and
|
|
5
|
+
* sources tool builders, so a description tweak lands in one place
|
|
6
|
+
* instead of three.
|
|
7
|
+
*
|
|
8
|
+
* @license MIT
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
export const TEMPLATE_ID = z
|
|
12
|
+
.string()
|
|
13
|
+
.min(1)
|
|
14
|
+
.describe('Template ID (e.g. "default"). Use yootheme_builder_pages_list to discover.');
|
|
15
|
+
// F-102 (2026-05-26): the input-arg name is **`element_path`** (NOT
|
|
16
|
+
// `element_rel_path`). `rel_path` is a PROJECTION COLUMN name on the
|
|
17
|
+
// output of `element_list` / `page_get_schema` — copy its VALUE back
|
|
18
|
+
// here as `element_path`. The disambiguation is baked into the
|
|
19
|
+
// `.describe()` string so the LLM sees it at every call site that
|
|
20
|
+
// reuses this shared schema. There is no `element_rel_path` server
|
|
21
|
+
// argument anywhere.
|
|
22
|
+
export const ELEMENT_PATH = z
|
|
23
|
+
.string()
|
|
24
|
+
.min(1)
|
|
25
|
+
.describe(
|
|
26
|
+
// Wave-16 #34 (6.3): lead with the standard JSON-Pointer (RFC-6901)
|
|
27
|
+
// docstring so every element_path param across all tools opens with
|
|
28
|
+
// the canonical form + the enumerate-paths pointer. The F-102
|
|
29
|
+
// disambiguation (element_path vs the element_rel_path projection
|
|
30
|
+
// column) follows and stays load-bearing.
|
|
31
|
+
'JSON-Pointer (RFC-6901) style: /0/children/1. ' +
|
|
32
|
+
'Use yootheme_builder_element_list to enumerate valid paths. ' +
|
|
33
|
+
'Field name is `element_path` (NOT ' +
|
|
34
|
+
'`element_rel_path` — that is the projection column name on ' +
|
|
35
|
+
'`element_list` / `page_get_schema` output, not an input arg). ' +
|
|
36
|
+
'**`rel_path` VALUE from `element_list` is the preferred form** ' +
|
|
37
|
+
'— copy it straight back here as `element_path` (e.g. `/children/0` ' +
|
|
38
|
+
'or `/children/0/children/1`); the server resolves it within this ' +
|
|
39
|
+
'template. Fully-qualified pointers (`/templates/<id>/layout/' +
|
|
40
|
+
'children/0/...`) are also accepted. Both forms work everywhere ' +
|
|
41
|
+
'`element_path` appears.');
|
|
42
|
+
export const ETAG = z
|
|
43
|
+
.string()
|
|
44
|
+
.min(1)
|
|
45
|
+
.describe('Optimistic-lock ETag from yootheme_builder_get_etag. Required to ' +
|
|
46
|
+
'detect concurrent edits — call get_etag first, pass the value here. ' +
|
|
47
|
+
'On 412 Precondition Failed, re-fetch the ETag and retry. ' +
|
|
48
|
+
'Note (Wave-8 C2 2026-05-29): every successful write returns a NEW ' +
|
|
49
|
+
'ETag in the response body — use that next-ETag for the following ' +
|
|
50
|
+
'call, do NOT reuse the same value across multiple writes (the server ' +
|
|
51
|
+
'bumps a monotonic revision per persist, so byte-identical state ' +
|
|
52
|
+
'still surfaces as a distinct ETag).');
|
|
53
|
+
export const PROPS = z
|
|
54
|
+
.record(z.string(), z.unknown())
|
|
55
|
+
.describe('Element props object (e.g. `{title: "Hello", margin: "default"}`). ' +
|
|
56
|
+
'Use yootheme_builder_element_type_get_schema to discover available keys.');
|
|
57
|
+
/**
|
|
58
|
+
* W5 — Multi-Site selector. Every tool exposes this field as an OPTIONAL
|
|
59
|
+
* first-position input so an agent can target a specific site while
|
|
60
|
+
* defaulting to the primary site when omitted. The handler bodies do not
|
|
61
|
+
* yet read this field — W6 wires `pool.resolve(site_id)` into each
|
|
62
|
+
* handler. Keep this addition non-breaking: the regex is permissive enough
|
|
63
|
+
* to allow customer ids like `wp-acme` or `joomla_beta`, and the field is
|
|
64
|
+
* optional so existing clients continue to work without modification.
|
|
65
|
+
*/
|
|
66
|
+
export const SITE_ID_SCHEMA = z.string()
|
|
67
|
+
.min(1).max(64)
|
|
68
|
+
.regex(/^[a-zA-Z0-9_-]+$/, 'site_id uses letters/digits/dash/underscore only')
|
|
69
|
+
.optional()
|
|
70
|
+
.describe('Target site (e.g., "wp-acme"). Omit to use the default site. ' +
|
|
71
|
+
'Use yootheme_builder_sites_list to discover available IDs.');
|
|
72
|
+
//# sourceMappingURL=shared-schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-schemas.js","sourceRoot":"","sources":["../../src/tools/shared-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACvB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,CACL,4EAA4E,CAC/E,CAAC;AAEN,oEAAoE;AACpE,qEAAqE;AACrE,qEAAqE;AACrE,+DAA+D;AAC/D,kEAAkE;AAClE,mEAAmE;AACnE,qBAAqB;AACrB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ;AACL,oEAAoE;AACpE,oEAAoE;AACpE,8DAA8D;AAC9D,kEAAkE;AAClE,0CAA0C;AAC1C,gDAAgD;IAC5C,8DAA8D;IAC9D,oCAAoC;IACpC,6DAA6D;IAC7D,gEAAgE;IAChE,iEAAiE;IACjE,qEAAqE;IACrE,mEAAmE;IACnE,8DAA8D;IAC9D,iEAAiE;IACjE,yBAAyB,CAChC,CAAC;AAEN,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;KAChB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,CACL,mEAAmE;IAC/D,sEAAsE;IACtE,2DAA2D;IAC3D,oEAAoE;IACpE,mEAAmE;IACnE,uEAAuE;IACvE,kEAAkE;IAClE,qCAAqC,CAC5C,CAAC;AAEN,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC;KACjB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;KAC/B,QAAQ,CACL,qEAAqE;IACjE,0EAA0E,CACjF,CAAC;AAEN;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE;KACnC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;KACd,KAAK,CAAC,kBAAkB,EAAE,kDAAkD,CAAC;KAC7E,QAAQ,EAAE;KACV,QAAQ,CACL,+DAA+D;IAC/D,4DAA4D,CAC/D,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source-tool builders — pure `defineTool` factory list.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `src/tools/sources.ts` (Wave G.4.0b). See `./handlers.ts`
|
|
5
|
+
* for the handler bodies.
|
|
6
|
+
*
|
|
7
|
+
* @license MIT
|
|
8
|
+
*/
|
|
9
|
+
import type { ClientPool } from '../../sites/client-pool.js';
|
|
10
|
+
import { type AnyToolDefinition } from '../tool-builder.js';
|
|
11
|
+
import { type SourcesHandlerDeps } from './handlers.js';
|
|
12
|
+
export declare function buildSourcesTools(pool: ClientPool, deps?: Partial<SourcesHandlerDeps>): readonly AnyToolDefinition[];
|
|
13
|
+
//# sourceMappingURL=builders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/tools/sources/builders.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAI7D,OAAO,EAMH,KAAK,iBAAiB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGH,KAAK,kBAAkB,EAK1B,MAAM,eAAe,CAAC;AAEvB,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,UAAU,EAChB,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,SAAS,iBAAiB,EAAE,CAiI9B"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source-tool builders — pure `defineTool` factory list.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `src/tools/sources.ts` (Wave G.4.0b). See `./handlers.ts`
|
|
5
|
+
* for the handler bodies.
|
|
6
|
+
*
|
|
7
|
+
* @license MIT
|
|
8
|
+
*/
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
import { withSiteRetry } from '../pool-resolve-helper.js';
|
|
11
|
+
import { ELEMENT_PATH, ETAG, SITE_ID_SCHEMA, TEMPLATE_ID } from '../shared-schemas.js';
|
|
12
|
+
import { FIELDS } from '../sparse-fields.js';
|
|
13
|
+
import { defineTool, destructive, mutating, readOnly, withSiteMeta, } from '../tool-builder.js';
|
|
14
|
+
import { BINDING_OUTPUT_SCHEMA, SOURCES_LIST_OUTPUT_SCHEMA, handleElementBindSource, handleElementGetBinding, handleElementUnbindSource, handleSourcesList, } from './handlers.js';
|
|
15
|
+
export function buildSourcesTools(pool, deps) {
|
|
16
|
+
// W6.3 — handlers receive a per-call `siteClient` via the
|
|
17
|
+
// resolveSiteOrError helper; the elicitation capability is the
|
|
18
|
+
// only stable dep we propagate.
|
|
19
|
+
const elicitation = deps?.elicitation;
|
|
20
|
+
const makeDeps = (siteClient) => (elicitation !== undefined
|
|
21
|
+
? { client: siteClient, elicitation }
|
|
22
|
+
: { client: siteClient });
|
|
23
|
+
return [
|
|
24
|
+
defineTool({
|
|
25
|
+
name: 'yootheme_builder_sources_list',
|
|
26
|
+
description: 'List all data sources, feeds, and dynamic content sources available in the ' +
|
|
27
|
+
'YOOtheme Pro builder. Returns name + label + origin (apimapper / wordpress / ' +
|
|
28
|
+
'joomla / essentials) per source. CALL THIS BEFORE binding any element to a data source. ' +
|
|
29
|
+
'Pick a source name from the list and pass it to `element_bind_source`. ' +
|
|
30
|
+
'Keywords: list sources, list data sources, list feeds, list bindings, ' +
|
|
31
|
+
'dynamic content, available data, what sources exist. ' +
|
|
32
|
+
'Pass `fields[]` to narrow each row. Operates on the default site unless site_id is provided.',
|
|
33
|
+
inputSchema: {
|
|
34
|
+
site_id: SITE_ID_SCHEMA,
|
|
35
|
+
fields: FIELDS,
|
|
36
|
+
},
|
|
37
|
+
outputSchema: SOURCES_LIST_OUTPUT_SCHEMA,
|
|
38
|
+
annotations: readOnly('List Sources'),
|
|
39
|
+
handler: async ({ site_id, ...rest }) => withSiteRetry(pool, site_id, async (client, site) => withSiteMeta(await handleSourcesList(makeDeps(client), rest), site)),
|
|
40
|
+
}),
|
|
41
|
+
defineTool({
|
|
42
|
+
name: 'yootheme_builder_element_get_binding',
|
|
43
|
+
description: 'Read the source binding attached to an element — the bound source name, ' +
|
|
44
|
+
'the field-mappings (which source field feeds which element prop) and the ' +
|
|
45
|
+
'query arguments/directives. Returns the empty object if the element is not bound. ' +
|
|
46
|
+
'Operates on the default site unless site_id is provided.',
|
|
47
|
+
inputSchema: {
|
|
48
|
+
site_id: SITE_ID_SCHEMA,
|
|
49
|
+
template_id: TEMPLATE_ID,
|
|
50
|
+
element_path: ELEMENT_PATH,
|
|
51
|
+
},
|
|
52
|
+
outputSchema: BINDING_OUTPUT_SCHEMA,
|
|
53
|
+
annotations: readOnly('Get Source Binding'),
|
|
54
|
+
handler: async ({ site_id, ...rest }) => withSiteRetry(pool, site_id, async (client, site) => withSiteMeta(await handleElementGetBinding(makeDeps(client), rest), site)),
|
|
55
|
+
}),
|
|
56
|
+
defineTool({
|
|
57
|
+
name: 'yootheme_builder_element_bind_source',
|
|
58
|
+
description: 'Binds a Builder source to an element (sets `props.source`). Use bindingLevel ' +
|
|
59
|
+
'"item" on Multi-Items containers (grid/slideshow/switcher/…) to bind on the ' +
|
|
60
|
+
'first *_item child instead of the container itself. Requires ETag. ' +
|
|
61
|
+
'Operates on the default site unless site_id is provided.',
|
|
62
|
+
inputSchema: {
|
|
63
|
+
site_id: SITE_ID_SCHEMA,
|
|
64
|
+
template_id: TEMPLATE_ID,
|
|
65
|
+
element_path: ELEMENT_PATH,
|
|
66
|
+
source_name: z
|
|
67
|
+
.string()
|
|
68
|
+
.min(1)
|
|
69
|
+
.describe('Source name as listed by yootheme_builder_sources_list ' +
|
|
70
|
+
'(e.g. "wp_posts", "apimapper_my-flow").'),
|
|
71
|
+
source_id: z
|
|
72
|
+
.string()
|
|
73
|
+
.optional()
|
|
74
|
+
.describe('Optional explicit "<origin>:<name>" id; skips ambiguity ' +
|
|
75
|
+
'resolution when ≥2 sources share `source_name`.'),
|
|
76
|
+
field_mappings: z
|
|
77
|
+
.record(z.string(), z.string())
|
|
78
|
+
.optional()
|
|
79
|
+
.describe('Optional {prop_name: source_field_name} map written to `source.props`. ' +
|
|
80
|
+
'Pass "__node_item__" (or "__node_item__:<field>") as the value to ' +
|
|
81
|
+
'emit YT-Pro INHERIT bindings ("Node - Item (Source/Items)" picker ' +
|
|
82
|
+
'entry) on child *_item elements.'),
|
|
83
|
+
bindingLevel: z
|
|
84
|
+
.enum(['auto', 'container', 'item'])
|
|
85
|
+
.optional()
|
|
86
|
+
.describe('Multi-Items binding level. "auto" (default): item if target is a *_item, ' +
|
|
87
|
+
'container otherwise. "item": container targets resolve to their first ' +
|
|
88
|
+
'*_item child. "container": binds on the container, response carries a ' +
|
|
89
|
+
'warning because YT-Pro will clone the container N times.'),
|
|
90
|
+
etag: ETAG,
|
|
91
|
+
},
|
|
92
|
+
annotations: mutating('Bind Source'),
|
|
93
|
+
handler: async ({ site_id, ...rest }) => withSiteRetry(pool, site_id, async (client, site) => withSiteMeta(await handleElementBindSource(makeDeps(client), rest), site)),
|
|
94
|
+
}),
|
|
95
|
+
defineTool({
|
|
96
|
+
name: 'yootheme_builder_element_unbind_source',
|
|
97
|
+
description: 'Remove the source binding from an element. Clears `props.source`. Destructive ' +
|
|
98
|
+
'in the sense that it may break dynamic-content rendering — always ask the ' +
|
|
99
|
+
'user to confirm. Requires ETag. ' +
|
|
100
|
+
'Operates on the default site unless site_id is provided.',
|
|
101
|
+
inputSchema: {
|
|
102
|
+
site_id: SITE_ID_SCHEMA,
|
|
103
|
+
template_id: TEMPLATE_ID,
|
|
104
|
+
element_path: ELEMENT_PATH,
|
|
105
|
+
etag: ETAG,
|
|
106
|
+
confirm: z
|
|
107
|
+
.boolean()
|
|
108
|
+
.optional()
|
|
109
|
+
.describe('Must be true to execute. On supporting hosts the agent is prompted ' +
|
|
110
|
+
'via MCP elicitation when omitted; otherwise the call returns a ' +
|
|
111
|
+
'preview and the agent must retry with `confirm: true`.'),
|
|
112
|
+
},
|
|
113
|
+
annotations: destructive('Unbind Source'),
|
|
114
|
+
handler: async ({ site_id, ...rest }) => withSiteRetry(pool, site_id, async (client, site) => withSiteMeta(await handleElementUnbindSource(makeDeps(client), rest), site)),
|
|
115
|
+
}),
|
|
116
|
+
];
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=builders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../src/tools/sources/builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source-binding write handlers (`element_bind_source`,
|
|
3
|
+
* `element_unbind_source`).
|
|
4
|
+
*
|
|
5
|
+
* Split out of `./handlers.ts` to keep each file under the 200-LoC
|
|
6
|
+
* budget. Wave G.4.2 adds destructive-confirm elicitation;
|
|
7
|
+
* Wave G.4.3 adds ambiguity-resolution elicitation.
|
|
8
|
+
*
|
|
9
|
+
* @license MIT
|
|
10
|
+
*/
|
|
11
|
+
import { type ToolResult } from '../tool-builder.js';
|
|
12
|
+
import type { SourcesHandlerDeps } from './handlers.js';
|
|
13
|
+
export declare function handleElementBindSource({ client, elicitation }: SourcesHandlerDeps, input: {
|
|
14
|
+
template_id: string;
|
|
15
|
+
element_path: string;
|
|
16
|
+
source_name: string;
|
|
17
|
+
source_id?: string;
|
|
18
|
+
etag: string;
|
|
19
|
+
bindingLevel?: 'auto' | 'container' | 'item';
|
|
20
|
+
field_mappings?: Record<string, string>;
|
|
21
|
+
}): Promise<ToolResult>;
|
|
22
|
+
export declare function handleElementUnbindSource({ client, elicitation }: SourcesHandlerDeps, input: {
|
|
23
|
+
template_id: string;
|
|
24
|
+
element_path: string;
|
|
25
|
+
etag: string;
|
|
26
|
+
confirm?: boolean;
|
|
27
|
+
}): Promise<ToolResult>;
|
|
28
|
+
//# sourceMappingURL=handlers-bind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers-bind.d.ts","sourceRoot":"","sources":["../../../src/tools/sources/handlers-bind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAeH,OAAO,EAIH,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAgDxD,wBAAsB,uBAAuB,CACzC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAC3C,KAAK,EAAE;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C,GACF,OAAO,CAAC,UAAU,CAAC,CAyGrB;AAID,wBAAsB,yBAAyB,CAC3C,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAC3C,KAAK,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACtF,OAAO,CAAC,UAAU,CAAC,CAoCrB"}
|