@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,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CapturingServer — registration interceptor wrapping a real McpServer.
|
|
3
|
+
*
|
|
4
|
+
* Tool routing (Wave G.1 / Design-Doc §3.1.1):
|
|
5
|
+
* - L3 direct (yootheme_builder_health, yootheme_builder_diagnose):
|
|
6
|
+
* skipped — no forward, no capture. These tools must already be
|
|
7
|
+
* registered directly on the real server BEFORE the CapturingServer
|
|
8
|
+
* wraps it, so the SDK never sees a duplicate name.
|
|
9
|
+
* - L1 essential (ESSENTIAL_TOOLS): forwarded to the real server as a
|
|
10
|
+
* first-class MCP tool reachable from `tools/list`.
|
|
11
|
+
* - L2 advanced (everything else): captured into the in-process
|
|
12
|
+
* advanced registry, reachable through the single
|
|
13
|
+
* `yootheme_builder_advanced` gateway tool.
|
|
14
|
+
*
|
|
15
|
+
* This is a typed wrapper, NOT a JS Proxy — TypeScript stays strict.
|
|
16
|
+
*
|
|
17
|
+
* Typing approach (mirrors the reference apimapper-mcp implementation):
|
|
18
|
+
* `ToolRegistrar` is the McpServer subsurface modules consume:
|
|
19
|
+
* `registerTool` + `registerResource`. `registerTool` is a hand-written
|
|
20
|
+
* generic mirroring the SDK signature EXCEPT its return type is `void`
|
|
21
|
+
* — captured tools have no live `RegisteredTool`, and no module reads
|
|
22
|
+
* the return value. A real `McpServer` is still assignable to
|
|
23
|
+
* `ToolRegistrar` (return-type bivariance for `void`), so every
|
|
24
|
+
* call-site accepts both shapes cast-free.
|
|
25
|
+
*
|
|
26
|
+
* Casts in this file (each documented + justified inline):
|
|
27
|
+
* 1. forwarded-essential — erases the handler's `InputArgs` generic to
|
|
28
|
+
* the SDK default when `config` is the erased `CapturedToolConfig`.
|
|
29
|
+
* 2. registry storage — erases the generic handler to the homogeneous
|
|
30
|
+
* `CapturedToolHandler` shape so one Map type fits all entries.
|
|
31
|
+
* 3. `registerResource` field — the SDK declares two overloads; a
|
|
32
|
+
* single spread-arg arrow cannot re-express the pair.
|
|
33
|
+
*
|
|
34
|
+
* @license MIT
|
|
35
|
+
*/
|
|
36
|
+
import { isDirectTopLevel, isEssential } from './essentials.js';
|
|
37
|
+
/**
|
|
38
|
+
* Wraps a real McpServer. Forwards L1 essentials (and all resources) to it,
|
|
39
|
+
* captures L2 non-essentials into an in-process registry, and silently
|
|
40
|
+
* skips L3 direct top-level names that must already be on the real server.
|
|
41
|
+
*/
|
|
42
|
+
export class CapturingServer {
|
|
43
|
+
realServer;
|
|
44
|
+
advancedRegistry = new Map();
|
|
45
|
+
constructor(realServer) {
|
|
46
|
+
this.realServer = realServer;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Routes a tool registration by name. Returns `void`: captured tools
|
|
50
|
+
* have no `RegisteredTool` and no `registerXTools` module reads the
|
|
51
|
+
* return value.
|
|
52
|
+
*
|
|
53
|
+
* Routing order matters: the L3-direct check is FIRST so a caller
|
|
54
|
+
* cannot accidentally re-route a direct-registered name through the
|
|
55
|
+
* gateway just by re-naming a future tool builder.
|
|
56
|
+
*/
|
|
57
|
+
registerTool(name, config, handler) {
|
|
58
|
+
// L3 — direct top-level: already on the real server, do nothing.
|
|
59
|
+
// Returning early here prevents the SDK from raising a duplicate-name
|
|
60
|
+
// error when an L3 tool's builder is accidentally re-included in the
|
|
61
|
+
// forwarded tool list.
|
|
62
|
+
if (isDirectTopLevel(name)) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (isEssential(name)) {
|
|
66
|
+
// L1 — forward to the real server.
|
|
67
|
+
//
|
|
68
|
+
// Cast: the SDK pairs `config.inputSchema` and the handler through
|
|
69
|
+
// one `InputArgs` generic. Here `config` is the erased
|
|
70
|
+
// `CapturedToolConfig`, so the SDK cannot re-infer that link; the
|
|
71
|
+
// handler is asserted to the SDK's default `ToolCallback` to satisfy
|
|
72
|
+
// the call. The runtime values are exactly what the SDK expects —
|
|
73
|
+
// only the static generic linkage is erased.
|
|
74
|
+
this.realServer.registerTool(name, config, handler);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
// L2 — capture into the advanced registry.
|
|
78
|
+
//
|
|
79
|
+
// Erase the generic handler to the captured-handler shape for
|
|
80
|
+
// homogeneous Map storage. The gateway validates `arguments` against
|
|
81
|
+
// the tool's Zod schema before invoking it, so the (args, extra)
|
|
82
|
+
// runtime contract holds.
|
|
83
|
+
this.advancedRegistry.set(name, {
|
|
84
|
+
config,
|
|
85
|
+
handler: handler,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Resources are always forwarded — they are not part of the tool cap.
|
|
90
|
+
*
|
|
91
|
+
* Cast: the SDK declares `registerResource` as two overloads; a single
|
|
92
|
+
* spread `(...args: RegisterResourceArgs)` arrow cannot re-express that
|
|
93
|
+
* overload pair, so the field is asserted to the SDK's exact member
|
|
94
|
+
* type. The spread forwards every argument verbatim, so the runtime
|
|
95
|
+
* contract is unchanged.
|
|
96
|
+
*/
|
|
97
|
+
registerResource = ((...args) => this.realServer.registerResource(...args));
|
|
98
|
+
/** The captured non-essential tools, keyed by tool name. */
|
|
99
|
+
getAdvancedRegistry() {
|
|
100
|
+
return this.advancedRegistry;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=capturing-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capturing-server.js","sourceRoot":"","sources":["../../src/gateway/capturing-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAMH,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AA8DhE;;;;GAIG;AACH,MAAM,OAAO,eAAe;IACP,UAAU,CAAY;IACtB,gBAAgB,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEzE,YAAY,UAAqB;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY,CACR,IAAY,EACZ,MAA0B,EAC1B,OAAgC;QAEhC,iEAAiE;QACjE,sEAAsE;QACtE,qEAAqE;QACrE,uBAAuB;QACvB,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO;QACX,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,mCAAmC;YACnC,EAAE;YACF,mEAAmE;YACnE,uDAAuD;YACvD,kEAAkE;YAClE,qEAAqE;YACrE,kEAAkE;YAClE,6CAA6C;YAC7C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAuB,CAAC,CAAC;YACpE,OAAO;QACX,CAAC;QAED,2CAA2C;QAC3C,EAAE;QACF,8DAA8D;QAC9D,qEAAqE;QACrE,iEAAiE;QACjE,0BAA0B;QAC1B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE;YAC5B,MAAM;YACN,OAAO,EAAE,OAAyC;SACrD,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;OAQG;IACH,gBAAgB,GAAkC,CAAC,CAAC,GAAG,IAA0B,EAAE,EAAE,CACjF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAkC,CAAC;IAEhF,4DAA4D;IAC5D,mBAAmB;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;CACJ"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway-Hub — single source of truth for the YT Builder MCP
|
|
3
|
+
* 3-lane registration surface.
|
|
4
|
+
*
|
|
5
|
+
* Lanes (Wave G.1 / Design-Doc §3.1.1):
|
|
6
|
+
* L1 — ESSENTIAL_TOOLS forwarded by the CapturingServer as
|
|
7
|
+
* first-class MCP tools in `tools/list`.
|
|
8
|
+
* L2 — (advanced) every NON-essential, NON-direct tool is
|
|
9
|
+
* captured by the CapturingServer and
|
|
10
|
+
* reachable through the single
|
|
11
|
+
* `yootheme_builder_advanced` gateway tool.
|
|
12
|
+
* L3 — DIRECT_TOP_LEVEL_TOOLS registered directly on the real McpServer
|
|
13
|
+
* BEFORE the CapturingServer wraps it.
|
|
14
|
+
* The CapturingServer skips these names
|
|
15
|
+
* entirely (no forward, no capture) so the
|
|
16
|
+
* SDK never sees a duplicate registration.
|
|
17
|
+
*
|
|
18
|
+
* Why this split: Cursor caps MCP servers at ~40 tools. This adapter
|
|
19
|
+
* declares 30 callable tools (22 domain L1/L3 + 7 advanced L2 + 1 gateway).
|
|
20
|
+
* The 3-lane shape keeps `tools/list` at 20 (L1) + 2 (L3) + 1 (gateway) =
|
|
21
|
+
* 23 entries, well under the cap, while every tool stays fully reachable
|
|
22
|
+
* (advanced tools through `yootheme_builder_advanced`).
|
|
23
|
+
*
|
|
24
|
+
* Health + diagnose live in L3 because they MUST be the first thing an
|
|
25
|
+
* LLM-host calls when something is broken; routing them through a gateway
|
|
26
|
+
* would create a chicken-and-egg loop (the LLM would have to discover
|
|
27
|
+
* the gateway before it can diagnose why the gateway is unreachable).
|
|
28
|
+
*
|
|
29
|
+
* @license MIT
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* L1 — Tools kept as first-class entries in `tools/list`.
|
|
33
|
+
* Forwarded by the CapturingServer to the real McpServer.
|
|
34
|
+
*/
|
|
35
|
+
export declare const ESSENTIAL_TOOLS: readonly ["yootheme_builder_pages_list", "yootheme_builder_get_etag", "yootheme_builder_element_list", "yootheme_builder_element_add", "yootheme_builder_element_update_settings", "yootheme_builder_sources_list", "yootheme_builder_element_types_list", "yootheme_builder_inspect_multi_items_binding", "yootheme_builder_element_get", "yootheme_builder_element_delete", "yootheme_builder_element_clone", "yootheme_builder_element_move", "yootheme_builder_page_get_layout", "yootheme_builder_template_summary", "yootheme_builder_element_type_get_schema", "yootheme_builder_sites_list", "yootheme_builder_sites_test", "yootheme_builder_use_site", "yootheme_builder_pages_create", "yootheme_builder_pages_delete"];
|
|
36
|
+
/**
|
|
37
|
+
* L3 — Tools registered DIRECTLY on the real McpServer, BEFORE the
|
|
38
|
+
* CapturingServer wraps it. The CapturingServer treats these names as a
|
|
39
|
+
* no-op (no forward, no capture) so the SDK never sees a duplicate
|
|
40
|
+
* registration. Use this lane only for tools that must be reachable
|
|
41
|
+
* even if the gateway itself fails — currently health + diagnose.
|
|
42
|
+
*/
|
|
43
|
+
export declare const DIRECT_TOP_LEVEL_TOOLS: readonly ["yootheme_builder_health", "yootheme_builder_diagnose"];
|
|
44
|
+
export type EssentialTool = (typeof ESSENTIAL_TOOLS)[number];
|
|
45
|
+
export type DirectTopLevelTool = (typeof DIRECT_TOP_LEVEL_TOOLS)[number];
|
|
46
|
+
/** True if `name` is in the L1 forwarded essentials surface. */
|
|
47
|
+
export declare function isEssential(name: string): boolean;
|
|
48
|
+
/** True if `name` is in the L3 direct top-level surface. */
|
|
49
|
+
export declare function isDirectTopLevel(name: string): boolean;
|
|
50
|
+
//# sourceMappingURL=essentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"essentials.d.ts","sourceRoot":"","sources":["../../src/gateway/essentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe,osBAqDlB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,mEAGzB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7D,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway-Hub — single source of truth for the YT Builder MCP
|
|
3
|
+
* 3-lane registration surface.
|
|
4
|
+
*
|
|
5
|
+
* Lanes (Wave G.1 / Design-Doc §3.1.1):
|
|
6
|
+
* L1 — ESSENTIAL_TOOLS forwarded by the CapturingServer as
|
|
7
|
+
* first-class MCP tools in `tools/list`.
|
|
8
|
+
* L2 — (advanced) every NON-essential, NON-direct tool is
|
|
9
|
+
* captured by the CapturingServer and
|
|
10
|
+
* reachable through the single
|
|
11
|
+
* `yootheme_builder_advanced` gateway tool.
|
|
12
|
+
* L3 — DIRECT_TOP_LEVEL_TOOLS registered directly on the real McpServer
|
|
13
|
+
* BEFORE the CapturingServer wraps it.
|
|
14
|
+
* The CapturingServer skips these names
|
|
15
|
+
* entirely (no forward, no capture) so the
|
|
16
|
+
* SDK never sees a duplicate registration.
|
|
17
|
+
*
|
|
18
|
+
* Why this split: Cursor caps MCP servers at ~40 tools. This adapter
|
|
19
|
+
* declares 30 callable tools (22 domain L1/L3 + 7 advanced L2 + 1 gateway).
|
|
20
|
+
* The 3-lane shape keeps `tools/list` at 20 (L1) + 2 (L3) + 1 (gateway) =
|
|
21
|
+
* 23 entries, well under the cap, while every tool stays fully reachable
|
|
22
|
+
* (advanced tools through `yootheme_builder_advanced`).
|
|
23
|
+
*
|
|
24
|
+
* Health + diagnose live in L3 because they MUST be the first thing an
|
|
25
|
+
* LLM-host calls when something is broken; routing them through a gateway
|
|
26
|
+
* would create a chicken-and-egg loop (the LLM would have to discover
|
|
27
|
+
* the gateway before it can diagnose why the gateway is unreachable).
|
|
28
|
+
*
|
|
29
|
+
* @license MIT
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* L1 — Tools kept as first-class entries in `tools/list`.
|
|
33
|
+
* Forwarded by the CapturingServer to the real McpServer.
|
|
34
|
+
*/
|
|
35
|
+
export const ESSENTIAL_TOOLS = [
|
|
36
|
+
'yootheme_builder_pages_list',
|
|
37
|
+
'yootheme_builder_get_etag',
|
|
38
|
+
'yootheme_builder_element_list',
|
|
39
|
+
'yootheme_builder_element_add',
|
|
40
|
+
'yootheme_builder_element_update_settings',
|
|
41
|
+
'yootheme_builder_sources_list',
|
|
42
|
+
'yootheme_builder_element_types_list',
|
|
43
|
+
// Multi-Items inspector — L1 discovery tool. Surfaces when a
|
|
44
|
+
// binding lives on the wrong (container) level and which `*_item`
|
|
45
|
+
// child should carry it. Frequent first-call when diagnosing
|
|
46
|
+
// Grid/Slider/Switcher rendering issues.
|
|
47
|
+
'yootheme_builder_inspect_multi_items_binding',
|
|
48
|
+
// F-16 hot-path promotions (Maria-Audit v2 re-confirmed) — the 5
|
|
49
|
+
// most-used read/mutate operations skip the advanced-router
|
|
50
|
+
// discovery roundtrip. Cursor cap is ~40; with the W7 sites_list +
|
|
51
|
+
// sites_test additions (plus later C4 + config-harmonization) we sit
|
|
52
|
+
// at 20 L1 + 2 L3 + 1 gateway = 23, comfortable below the limit.
|
|
53
|
+
'yootheme_builder_element_get',
|
|
54
|
+
'yootheme_builder_element_delete',
|
|
55
|
+
'yootheme_builder_element_clone',
|
|
56
|
+
'yootheme_builder_element_move',
|
|
57
|
+
'yootheme_builder_page_get_layout',
|
|
58
|
+
// T9 (Audit-v3 B.5) — token-efficient template overview. L1 because
|
|
59
|
+
// it's the recommended first call when orienting in a large template.
|
|
60
|
+
'yootheme_builder_template_summary',
|
|
61
|
+
// 1.0.1 — element_type_get_schema promoted L2 → L1. Live-testing
|
|
62
|
+
// 1.0.0 in Claude Desktop showed tool_search couldn't surface it
|
|
63
|
+
// through the advanced gateway, yet it is the canonical prop-key
|
|
64
|
+
// discovery tool an agent needs BEFORE every element_add or
|
|
65
|
+
// element_update_settings. Hot-path for any write workflow.
|
|
66
|
+
'yootheme_builder_element_type_get_schema',
|
|
67
|
+
// W7 (Multi-Site) — sites_list + sites_test must be L1 so an agent
|
|
68
|
+
// that just connected to a fresh MCP server can answer "which sites
|
|
69
|
+
// am I configured against?" without first discovering the gateway.
|
|
70
|
+
// Both are platform-agnostic (sites_list reads the registry only,
|
|
71
|
+
// sites_test probes /health + /etag for ONE site). L1 surface 15 → 17.
|
|
72
|
+
'yootheme_builder_sites_list',
|
|
73
|
+
'yootheme_builder_sites_test',
|
|
74
|
+
// Phase 3 (config harmonization) — use_site is the runtime active-
|
|
75
|
+
// site SWITCH (mirrors api-mapper's apimapper_use_profile). It must
|
|
76
|
+
// be L1 so an agent can discover + call it directly the same way it
|
|
77
|
+
// reaches sites_list, instead of routing through the advanced
|
|
78
|
+
// gateway. L1 surface 19 → 20.
|
|
79
|
+
'yootheme_builder_use_site',
|
|
80
|
+
// C4 (v1.2) — pages_create + pages_delete are first-class customer-
|
|
81
|
+
// facing page-level mutations (POST /pages, DELETE /pages/{id}).
|
|
82
|
+
// Both must be discoverable directly in tools/list, not behind the
|
|
83
|
+
// advanced-gateway router — they're high-frequency mutations agents
|
|
84
|
+
// reach for whenever the user says "create a new page" or "delete
|
|
85
|
+
// this page". L1 surface 17 → 19.
|
|
86
|
+
'yootheme_builder_pages_create',
|
|
87
|
+
'yootheme_builder_pages_delete',
|
|
88
|
+
];
|
|
89
|
+
/**
|
|
90
|
+
* L3 — Tools registered DIRECTLY on the real McpServer, BEFORE the
|
|
91
|
+
* CapturingServer wraps it. The CapturingServer treats these names as a
|
|
92
|
+
* no-op (no forward, no capture) so the SDK never sees a duplicate
|
|
93
|
+
* registration. Use this lane only for tools that must be reachable
|
|
94
|
+
* even if the gateway itself fails — currently health + diagnose.
|
|
95
|
+
*/
|
|
96
|
+
export const DIRECT_TOP_LEVEL_TOOLS = [
|
|
97
|
+
'yootheme_builder_health',
|
|
98
|
+
'yootheme_builder_diagnose',
|
|
99
|
+
];
|
|
100
|
+
/** True if `name` is in the L1 forwarded essentials surface. */
|
|
101
|
+
export function isEssential(name) {
|
|
102
|
+
return ESSENTIAL_TOOLS.includes(name);
|
|
103
|
+
}
|
|
104
|
+
/** True if `name` is in the L3 direct top-level surface. */
|
|
105
|
+
export function isDirectTopLevel(name) {
|
|
106
|
+
return DIRECT_TOP_LEVEL_TOOLS.includes(name);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=essentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"essentials.js","sourceRoot":"","sources":["../../src/gateway/essentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,6BAA6B;IAC7B,2BAA2B;IAC3B,+BAA+B;IAC/B,8BAA8B;IAC9B,0CAA0C;IAC1C,+BAA+B;IAC/B,qCAAqC;IACrC,6DAA6D;IAC7D,kEAAkE;IAClE,6DAA6D;IAC7D,yCAAyC;IACzC,8CAA8C;IAC9C,iEAAiE;IACjE,4DAA4D;IAC5D,mEAAmE;IACnE,qEAAqE;IACrE,iEAAiE;IACjE,8BAA8B;IAC9B,iCAAiC;IACjC,gCAAgC;IAChC,+BAA+B;IAC/B,kCAAkC;IAClC,oEAAoE;IACpE,sEAAsE;IACtE,mCAAmC;IACnC,iEAAiE;IACjE,iEAAiE;IACjE,iEAAiE;IACjE,4DAA4D;IAC5D,4DAA4D;IAC5D,0CAA0C;IAC1C,mEAAmE;IACnE,oEAAoE;IACpE,mEAAmE;IACnE,kEAAkE;IAClE,uEAAuE;IACvE,6BAA6B;IAC7B,6BAA6B;IAC7B,mEAAmE;IACnE,oEAAoE;IACpE,oEAAoE;IACpE,8DAA8D;IAC9D,+BAA+B;IAC/B,2BAA2B;IAC3B,oEAAoE;IACpE,iEAAiE;IACjE,mEAAmE;IACnE,oEAAoE;IACpE,kEAAkE;IAClE,kCAAkC;IAClC,+BAA+B;IAC/B,+BAA+B;CACzB,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,yBAAyB;IACzB,2BAA2B;CACrB,CAAC;AAKX,gEAAgE;AAChE,MAAM,UAAU,WAAW,CAAC,IAAY;IACpC,OAAQ,eAAqC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,gBAAgB,CAAC,IAAY;IACzC,OAAQ,sBAA4C,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway test helpers — Wave G.1.
|
|
3
|
+
*
|
|
4
|
+
* After the gateway lands, tests that previously looked tools up from
|
|
5
|
+
* `McpServer._registeredTools` no longer find advanced tools (they're
|
|
6
|
+
* captured in the advanced registry, not on the real server). These
|
|
7
|
+
* helpers expose a unified view across all three lanes:
|
|
8
|
+
*
|
|
9
|
+
* - L1 essentials → real server's `_registeredTools`
|
|
10
|
+
* - L2 advanced → CapturingServer's `getAdvancedRegistry()`
|
|
11
|
+
* - L3 + gateway → real server's `_registeredTools`
|
|
12
|
+
*
|
|
13
|
+
* Test-only: never imported by any runtime path.
|
|
14
|
+
*
|
|
15
|
+
* @license MIT
|
|
16
|
+
*/
|
|
17
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
18
|
+
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
19
|
+
import type { CapturingServer } from './capturing-server.js';
|
|
20
|
+
/** A tool entry as seen by tests: handler + the registered config. */
|
|
21
|
+
export interface CollectedTool {
|
|
22
|
+
handler: (args: Record<string, unknown>, extra?: unknown) => CallToolResult | Promise<CallToolResult>;
|
|
23
|
+
title?: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
inputSchema?: unknown;
|
|
26
|
+
annotations?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Returns every tool — essentials + gateway on the real McpServer plus
|
|
30
|
+
* the advanced tools captured by the CapturingServer — keyed by tool
|
|
31
|
+
* name. The CapturingServer must have been used to register the L1/L2
|
|
32
|
+
* tools, and `registerAdvancedTool` must have run, before this is called.
|
|
33
|
+
*
|
|
34
|
+
* Production size = 30:
|
|
35
|
+
* 20 L1 essentials (real server) + 7 L2 advanced (registry)
|
|
36
|
+
* + 2 L3 direct (real server) + 1 gateway (real server) = 30.
|
|
37
|
+
*/
|
|
38
|
+
export declare function collectAllRegisteredTools(server: McpServer, capturing: CapturingServer): Record<string, CollectedTool>;
|
|
39
|
+
/** By-name lookup over a `collectAllRegisteredTools` map. */
|
|
40
|
+
export declare function findTool(tools: Record<string, CollectedTool>, name: string): CollectedTool | undefined;
|
|
41
|
+
//# sourceMappingURL=test-support.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-support.d.ts","sourceRoot":"","sources":["../../src/gateway/test-support.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,CACL,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,CAAC,EAAE,OAAO,KACd,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAkBD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACrC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,eAAe,GAC3B,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAuC/B;AAED,6DAA6D;AAC7D,wBAAgB,QAAQ,CACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACpC,IAAI,EAAE,MAAM,GACb,aAAa,GAAG,SAAS,CAE3B"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway test helpers — Wave G.1.
|
|
3
|
+
*
|
|
4
|
+
* After the gateway lands, tests that previously looked tools up from
|
|
5
|
+
* `McpServer._registeredTools` no longer find advanced tools (they're
|
|
6
|
+
* captured in the advanced registry, not on the real server). These
|
|
7
|
+
* helpers expose a unified view across all three lanes:
|
|
8
|
+
*
|
|
9
|
+
* - L1 essentials → real server's `_registeredTools`
|
|
10
|
+
* - L2 advanced → CapturingServer's `getAdvancedRegistry()`
|
|
11
|
+
* - L3 + gateway → real server's `_registeredTools`
|
|
12
|
+
*
|
|
13
|
+
* Test-only: never imported by any runtime path.
|
|
14
|
+
*
|
|
15
|
+
* @license MIT
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Returns every tool — essentials + gateway on the real McpServer plus
|
|
19
|
+
* the advanced tools captured by the CapturingServer — keyed by tool
|
|
20
|
+
* name. The CapturingServer must have been used to register the L1/L2
|
|
21
|
+
* tools, and `registerAdvancedTool` must have run, before this is called.
|
|
22
|
+
*
|
|
23
|
+
* Production size = 30:
|
|
24
|
+
* 20 L1 essentials (real server) + 7 L2 advanced (registry)
|
|
25
|
+
* + 2 L3 direct (real server) + 1 gateway (real server) = 30.
|
|
26
|
+
*/
|
|
27
|
+
export function collectAllRegisteredTools(server, capturing) {
|
|
28
|
+
const result = {};
|
|
29
|
+
// The SDK changed the internal field name from `handler` to `callback`
|
|
30
|
+
// over its 1.x lifetime; accept either to keep the helper resilient.
|
|
31
|
+
const real = server;
|
|
32
|
+
for (const [name, tool] of Object.entries(real._registeredTools)) {
|
|
33
|
+
const callback = 'callback' in tool && typeof tool.callback === 'function'
|
|
34
|
+
? tool.callback
|
|
35
|
+
: tool.handler;
|
|
36
|
+
result[name] = {
|
|
37
|
+
handler: callback,
|
|
38
|
+
title: tool.title,
|
|
39
|
+
description: tool.description,
|
|
40
|
+
inputSchema: tool.inputSchema,
|
|
41
|
+
annotations: tool.annotations,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
for (const [name, entry] of capturing.getAdvancedRegistry()) {
|
|
45
|
+
const cfg = entry.config;
|
|
46
|
+
result[name] = {
|
|
47
|
+
handler: entry.handler,
|
|
48
|
+
title: cfg.title,
|
|
49
|
+
description: cfg.description,
|
|
50
|
+
inputSchema: cfg.inputSchema,
|
|
51
|
+
annotations: cfg.annotations,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
/** By-name lookup over a `collectAllRegisteredTools` map. */
|
|
57
|
+
export function findTool(tools, name) {
|
|
58
|
+
return tools[name];
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=test-support.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-support.js","sourceRoot":"","sources":["../../src/gateway/test-support.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAmCH;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACrC,MAAiB,EACjB,SAA0B;IAE1B,MAAM,MAAM,GAAkC,EAAE,CAAC;IAEjD,uEAAuE;IACvE,qEAAqE;IACrE,MAAM,IAAI,GAAG,MAEZ,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/D,MAAM,QAAQ,GACV,UAAU,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU;YACrD,CAAC,CAAC,IAAI,CAAC,QAAQ;YACf,CAAC,CAAE,IAAiC,CAAC,OAAO,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,GAAG;YACX,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;SAChC,CAAC;IACN,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,mBAAmB,EAAE,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,KAAK,CAAC,MAKjB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,GAAG;YACX,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;SAC/B,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,QAAQ,CACpB,KAAoC,EACpC,IAAY;IAEZ,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP server entrypoint (stdio transport).
|
|
3
|
+
*
|
|
4
|
+
* Reads config from environment variables (see `auth.ts`), spins up a
|
|
5
|
+
* `McpServer` with all tools registered, connects to stdio, and lets
|
|
6
|
+
* the host (Claude Desktop / Cursor / Zed / …) drive.
|
|
7
|
+
*
|
|
8
|
+
* `YTB_MCP_TEST_MODE=1` short-circuits: prints the tool registry and
|
|
9
|
+
* exits 0. Used by the smoke test and by `release.php` to validate
|
|
10
|
+
* that the bundled `dist/` is loadable on the target Node version.
|
|
11
|
+
*
|
|
12
|
+
* @license MIT
|
|
13
|
+
*/
|
|
14
|
+
export { createServer, SERVER_NAME, SERVER_VERSION } from './server.js';
|
|
15
|
+
export { RestClient, REST_NAMESPACE_PATH, encodeElementPath } from './client.js';
|
|
16
|
+
export { loadConfig, loadRegistry, isTestMode, ENV_SITE_URL, ENV_WP_URL, ENV_BEARER, ENV_SITES_FILE, ENV_PLATFORM, ENV_PROFILE, ENV_TEST_MODE, } from './auth.js';
|
|
17
|
+
export { bootstrapActiveSite } from './sites/bootstrap.js';
|
|
18
|
+
export { ConfigError, RestError, NetworkError } from './errors.js';
|
|
19
|
+
export { buildAllTools } from './tools/index.js';
|
|
20
|
+
export { ClientPool, NoDefaultSiteError, UnknownSiteError } from './sites/client-pool.js';
|
|
21
|
+
export { SiteRegistry } from './sites/registry.js';
|
|
22
|
+
export { synthesiseFromEnv } from './sites/env-bridge.js';
|
|
23
|
+
export { defaultSecretResolver, PlainSecretResolver } from './sites/secret-resolver.js';
|
|
24
|
+
export { ESSENTIAL_TOOLS, DIRECT_TOP_LEVEL_TOOLS, isEssential, isDirectTopLevel, } from './gateway/essentials.js';
|
|
25
|
+
export { CapturingServer, type AdvancedToolEntry, type CapturedToolHandler, type ToolRegistrar, } from './gateway/capturing-server.js';
|
|
26
|
+
export { registerAdvancedTool } from './gateway/advanced-tool.js';
|
|
27
|
+
export { collectAllRegisteredTools, findTool, type CollectedTool, } from './gateway/test-support.js';
|
|
28
|
+
declare function main(): Promise<void>;
|
|
29
|
+
export { main };
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EACH,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,WAAW,EACX,aAAa,GAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EACH,eAAe,EACf,sBAAsB,EACtB,WAAW,EACX,gBAAgB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACH,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACH,yBAAyB,EACzB,QAAQ,EACR,KAAK,aAAa,GACrB,MAAM,2BAA2B,CAAC;AAEnC,iBAAe,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAuEnC;AAkBD,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP server entrypoint (stdio transport).
|
|
3
|
+
*
|
|
4
|
+
* Reads config from environment variables (see `auth.ts`), spins up a
|
|
5
|
+
* `McpServer` with all tools registered, connects to stdio, and lets
|
|
6
|
+
* the host (Claude Desktop / Cursor / Zed / …) drive.
|
|
7
|
+
*
|
|
8
|
+
* `YTB_MCP_TEST_MODE=1` short-circuits: prints the tool registry and
|
|
9
|
+
* exits 0. Used by the smoke test and by `release.php` to validate
|
|
10
|
+
* that the bundled `dist/` is loadable on the target Node version.
|
|
11
|
+
*
|
|
12
|
+
* @license MIT
|
|
13
|
+
*/
|
|
14
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
15
|
+
import { isTestMode, loadRegistry } from './auth.js';
|
|
16
|
+
import { ConfigError } from './errors.js';
|
|
17
|
+
import { bootstrapActiveSite } from './sites/bootstrap.js';
|
|
18
|
+
import { ClientPool } from './sites/client-pool.js';
|
|
19
|
+
import { SiteRegistry } from './sites/registry.js';
|
|
20
|
+
import { defaultSecretResolver } from './sites/secret-resolver.js';
|
|
21
|
+
import { createServer } from './server.js';
|
|
22
|
+
export { createServer, SERVER_NAME, SERVER_VERSION } from './server.js';
|
|
23
|
+
export { RestClient, REST_NAMESPACE_PATH, encodeElementPath } from './client.js';
|
|
24
|
+
export { loadConfig, loadRegistry, isTestMode, ENV_SITE_URL, ENV_WP_URL, ENV_BEARER, ENV_SITES_FILE, ENV_PLATFORM, ENV_PROFILE, ENV_TEST_MODE, } from './auth.js';
|
|
25
|
+
export { bootstrapActiveSite } from './sites/bootstrap.js';
|
|
26
|
+
export { ConfigError, RestError, NetworkError } from './errors.js';
|
|
27
|
+
export { buildAllTools } from './tools/index.js';
|
|
28
|
+
// W6 — multi-site primitives exported for dist consumers (scripts,
|
|
29
|
+
// embedded uses). The `ClientPool` is the new wiring contract.
|
|
30
|
+
export { ClientPool, NoDefaultSiteError, UnknownSiteError } from './sites/client-pool.js';
|
|
31
|
+
export { SiteRegistry } from './sites/registry.js';
|
|
32
|
+
export { synthesiseFromEnv } from './sites/env-bridge.js';
|
|
33
|
+
export { defaultSecretResolver, PlainSecretResolver } from './sites/secret-resolver.js';
|
|
34
|
+
export { ESSENTIAL_TOOLS, DIRECT_TOP_LEVEL_TOOLS, isEssential, isDirectTopLevel, } from './gateway/essentials.js';
|
|
35
|
+
export { CapturingServer, } from './gateway/capturing-server.js';
|
|
36
|
+
export { registerAdvancedTool } from './gateway/advanced-tool.js';
|
|
37
|
+
export { collectAllRegisteredTools, findTool, } from './gateway/test-support.js';
|
|
38
|
+
async function main() {
|
|
39
|
+
const testMode = isTestMode();
|
|
40
|
+
// W10 — multi-site bootstrap is now centralised in
|
|
41
|
+
// `auth.loadRegistry()`. The canonical resolution order is:
|
|
42
|
+
// 1. YTB_MCP_SITES_FILE → loadSitesFile + SiteRegistry
|
|
43
|
+
// 2. env-bridge (YTB_MCP_SITE_URL + YTB_MCP_BEARER_TOKEN)
|
|
44
|
+
// 3. ConfigError("No sites configured.")
|
|
45
|
+
//
|
|
46
|
+
// The single exception lives here: `--test-mode` smoke probes
|
|
47
|
+
// (release.php, CI tool-list dumps) must boot even when neither
|
|
48
|
+
// path is configured. We honor loadRegistry first, then trap the
|
|
49
|
+
// ConfigError in test-mode and synthesise an empty registry so the
|
|
50
|
+
// tool list still prints. Tools will refuse to run, which is
|
|
51
|
+
// expected — `--test-mode` never invokes them.
|
|
52
|
+
let registry;
|
|
53
|
+
try {
|
|
54
|
+
registry = await loadRegistry();
|
|
55
|
+
}
|
|
56
|
+
catch (e) {
|
|
57
|
+
// Never crash the transport over a config problem. A DXT host
|
|
58
|
+
// (Claude Desktop) auto-starts the server the moment the
|
|
59
|
+
// extension is installed — before any Site URL / Bearer /
|
|
60
|
+
// sites-file is entered — and also restarts it after every config
|
|
61
|
+
// edit. Exiting here surfaced a scary "Server disconnected" toast
|
|
62
|
+
// for two common cases: (1) no config at all (ConfigError), and
|
|
63
|
+
// (2) a half-finished or malformed sites.json (schema validation,
|
|
64
|
+
// e.g. a leftover PASTE_… placeholder bearer). Both now boot with
|
|
65
|
+
// an empty registry: the server connects, advertises its tools,
|
|
66
|
+
// `sites_list` shows "(no sites)", and any tool needing a site
|
|
67
|
+
// returns a friendly NoDefaultSiteError at call-time. The real
|
|
68
|
+
// reason is written to stderr (visible in the host's MCP logs).
|
|
69
|
+
// In `--test-mode` this also lets the print-tools probe boot with
|
|
70
|
+
// zero or broken config.
|
|
71
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
72
|
+
const kind = e instanceof ConfigError
|
|
73
|
+
? 'starting unconfigured'
|
|
74
|
+
: 'config problem, starting with no sites';
|
|
75
|
+
process.stderr.write(`[yt-builder-mcp] ${kind} — ${msg}\n`);
|
|
76
|
+
registry = new SiteRegistry({
|
|
77
|
+
schema_version: 1,
|
|
78
|
+
default_site_id: null,
|
|
79
|
+
sites: [],
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
const secretResolver = defaultSecretResolver();
|
|
83
|
+
const pool = new ClientPool(registry, secretResolver);
|
|
84
|
+
// Phase 3 — honour YTB_MCP_PROFILE: seed the pool's active-site
|
|
85
|
+
// override so a multi-client config (one MCP entry per site, each
|
|
86
|
+
// with its own profile) boots on the right site without a first
|
|
87
|
+
// tool call. No-op when unset / "default" / unknown — mirrors
|
|
88
|
+
// api-mapper's bootstrapActiveProfile. Pure in-memory pointer move.
|
|
89
|
+
bootstrapActiveSite(pool);
|
|
90
|
+
const { mcp, tools } = createServer({ pool });
|
|
91
|
+
if (testMode) {
|
|
92
|
+
// Print a one-line per tool summary to stderr (stdout is reserved
|
|
93
|
+
// for the JSON-RPC frame in real runs) and exit cleanly.
|
|
94
|
+
process.stderr.write(`[yt-builder-mcp] test mode — ${String(tools.length)} tools registered:\n`);
|
|
95
|
+
for (const tool of tools) {
|
|
96
|
+
process.stderr.write(` - ${tool.name}\n`);
|
|
97
|
+
}
|
|
98
|
+
process.exit(0);
|
|
99
|
+
}
|
|
100
|
+
const transport = new StdioServerTransport();
|
|
101
|
+
await mcp.connect(transport);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Auto-run unless explicitly disabled. Tests set `YTB_MCP_NO_AUTORUN=1`
|
|
105
|
+
* to import the module without firing up the stdio server.
|
|
106
|
+
*
|
|
107
|
+
* The bin dispatcher (`bin/yt-builder-mcp.js`) imports
|
|
108
|
+
* `dist/index.js` dynamically and expects `main()` to take over — so by
|
|
109
|
+
* default we run on import.
|
|
110
|
+
*/
|
|
111
|
+
if (process.env.YTB_MCP_NO_AUTORUN !== '1') {
|
|
112
|
+
main().catch((e) => {
|
|
113
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
114
|
+
process.stderr.write(`[yt-builder-mcp] fatal: ${message}\n`);
|
|
115
|
+
process.exit(1);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
export { main };
|
|
119
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `install-skill` subcommand for `@wootsup/yt-builder-mcp`.
|
|
3
|
+
*
|
|
4
|
+
* Copies the bundled `skills/yt-builder-mcp/` directory into the user's
|
|
5
|
+
* agent-skill folder (typically `~/.claude/skills/`) and appends a marker
|
|
6
|
+
* block to `~/AGENTS.md` so other AI clients pick it up automatically.
|
|
7
|
+
*
|
|
8
|
+
* Idempotent: re-running overwrites existing skill files and skips the
|
|
9
|
+
* AGENTS.md append when the marker is already present.
|
|
10
|
+
*
|
|
11
|
+
* Mirrors the pattern from `@wootsup/mcp install-skill` so users on both
|
|
12
|
+
* products get the same workflow.
|
|
13
|
+
*
|
|
14
|
+
* @license MIT
|
|
15
|
+
*/
|
|
16
|
+
export declare const MARKER_LINE = "<!-- yt-builder-mcp:skill-installed -->";
|
|
17
|
+
export interface InstallSkillOptions {
|
|
18
|
+
/**
|
|
19
|
+
* Package root that contains the bundled `skills/` dir. Defaults to
|
|
20
|
+
* walking up from this file (works in both source and `dist/` layouts).
|
|
21
|
+
*/
|
|
22
|
+
readonly pkgRoot?: string;
|
|
23
|
+
/** Target dir where the `yt-builder-mcp/` skill folder will land. */
|
|
24
|
+
readonly targetSkillsDir?: string;
|
|
25
|
+
/**
|
|
26
|
+
* 1.0.1 Wave-R: when `true` (default), the installer removes any
|
|
27
|
+
* legacy `yootheme-builder/` directory left behind by pre-1.0.1
|
|
28
|
+
* installs so the user doesn't end up with two side-by-side skill
|
|
29
|
+
* copies under the same `~/.claude/skills/` root. Set to `false` to
|
|
30
|
+
* keep the legacy dir.
|
|
31
|
+
*/
|
|
32
|
+
readonly removeLegacyDir?: boolean;
|
|
33
|
+
/** Target AGENTS.md file to append the marker to. */
|
|
34
|
+
readonly targetAgentsFile?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface InstallSkillResult {
|
|
37
|
+
readonly copied: boolean;
|
|
38
|
+
readonly markerAlreadyPresent: boolean;
|
|
39
|
+
readonly skillTargetDir: string;
|
|
40
|
+
readonly agentsFile: string;
|
|
41
|
+
}
|
|
42
|
+
export declare function installSkill(options?: InstallSkillOptions): Promise<InstallSkillResult>;
|
|
43
|
+
//# sourceMappingURL=install-skill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-skill.d.ts","sourceRoot":"","sources":["../src/install-skill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiBH,eAAO,MAAM,WAAW,4CAA4C,CAAC;AAiBrE,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,qDAAqD;IACrD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAwCD,wBAAsB,YAAY,CAC9B,OAAO,GAAE,mBAAwB,GAClC,OAAO,CAAC,kBAAkB,CAAC,CAmD7B"}
|