@wootsup/yt-builder-mcp 1.11.0 → 2.0.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 +131 -33
- package/bin/node-floor.d.ts +28 -0
- package/bin/node-floor.js +123 -0
- package/bin/yt-builder-mcp.js +52 -11
- package/dist/auth.d.ts +3 -121
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +40 -170
- package/dist/auth.js.map +1 -1
- package/dist/catalog/build-catalog.d.ts +4 -49
- package/dist/catalog/build-catalog.d.ts.map +1 -1
- package/dist/catalog/build-catalog.js +15 -126
- package/dist/catalog/build-catalog.js.map +1 -1
- package/dist/catalog/json-schema.d.ts +3 -0
- package/dist/catalog/json-schema.d.ts.map +1 -0
- package/dist/catalog/json-schema.js +68 -0
- package/dist/catalog/json-schema.js.map +1 -0
- package/dist/catalog/output-shapes.d.ts +6 -0
- package/dist/catalog/output-shapes.d.ts.map +1 -0
- package/dist/catalog/output-shapes.js +89 -0
- package/dist/catalog/output-shapes.js.map +1 -0
- package/dist/catalog/tool-catalog-markdown.d.ts +1 -37
- package/dist/catalog/tool-catalog-markdown.d.ts.map +1 -1
- package/dist/catalog/tool-catalog-markdown.js +9 -41
- package/dist/catalog/tool-catalog-markdown.js.map +1 -1
- package/dist/cli/doctor-command.d.ts +2 -7
- package/dist/cli/doctor-command.d.ts.map +1 -1
- package/dist/cli/doctor-command.js +33 -54
- package/dist/cli/doctor-command.js.map +1 -1
- package/dist/cli/invocation-decision.d.ts +4 -52
- package/dist/cli/invocation-decision.d.ts.map +1 -1
- package/dist/cli/invocation-decision.js +45 -54
- package/dist/cli/invocation-decision.js.map +1 -1
- package/dist/client.d.ts +3 -107
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +34 -115
- package/dist/client.js.map +1 -1
- package/dist/clients/claude-code.d.ts +0 -15
- package/dist/clients/claude-code.d.ts.map +1 -1
- package/dist/clients/claude-code.js +0 -22
- package/dist/clients/claude-code.js.map +1 -1
- package/dist/clients/claude-desktop.d.ts +0 -16
- package/dist/clients/claude-desktop.d.ts.map +1 -1
- package/dist/clients/claude-desktop.js +0 -18
- package/dist/clients/claude-desktop.js.map +1 -1
- package/dist/clients/cline.d.ts +0 -23
- package/dist/clients/cline.d.ts.map +1 -1
- package/dist/clients/cline.js +0 -33
- package/dist/clients/cline.js.map +1 -1
- package/dist/clients/codex-cli.d.ts +0 -39
- package/dist/clients/codex-cli.d.ts.map +1 -1
- package/dist/clients/codex-cli.js +0 -137
- package/dist/clients/codex-cli.js.map +1 -1
- package/dist/clients/continue.d.ts +0 -10
- package/dist/clients/continue.d.ts.map +1 -1
- package/dist/clients/continue.js +0 -26
- package/dist/clients/continue.js.map +1 -1
- package/dist/clients/cursor.d.ts +0 -9
- package/dist/clients/cursor.d.ts.map +1 -1
- package/dist/clients/cursor.js +0 -11
- package/dist/clients/cursor.js.map +1 -1
- package/dist/clients/gemini-cli.d.ts +0 -15
- package/dist/clients/gemini-cli.d.ts.map +1 -1
- package/dist/clients/gemini-cli.js +0 -17
- package/dist/clients/gemini-cli.js.map +1 -1
- package/dist/clients/home.d.ts +0 -12
- package/dist/clients/home.d.ts.map +1 -1
- package/dist/clients/home.js +0 -12
- package/dist/clients/home.js.map +1 -1
- package/dist/clients/index.d.ts +0 -150
- package/dist/clients/index.d.ts.map +1 -1
- package/dist/clients/index.js +0 -112
- package/dist/clients/index.js.map +1 -1
- package/dist/clients/roo-code.d.ts +0 -20
- package/dist/clients/roo-code.d.ts.map +1 -1
- package/dist/clients/roo-code.js +0 -22
- package/dist/clients/roo-code.js.map +1 -1
- package/dist/clients/zed.d.ts +0 -9
- package/dist/clients/zed.d.ts.map +1 -1
- package/dist/clients/zed.js +0 -18
- package/dist/clients/zed.js.map +1 -1
- package/dist/compat-floor.d.ts +35 -0
- package/dist/compat-floor.d.ts.map +1 -0
- package/dist/compat-floor.js +84 -0
- package/dist/compat-floor.js.map +1 -0
- package/dist/compat-probe.d.ts +6 -0
- package/dist/compat-probe.d.ts.map +1 -0
- package/dist/compat-probe.js +20 -0
- package/dist/compat-probe.js.map +1 -0
- package/dist/diagnostics/ca-reexec.d.ts +0 -30
- package/dist/diagnostics/ca-reexec.d.ts.map +1 -1
- package/dist/diagnostics/ca-reexec.js +0 -62
- package/dist/diagnostics/ca-reexec.js.map +1 -1
- package/dist/diagnostics/ca-trust.d.ts +0 -22
- package/dist/diagnostics/ca-trust.d.ts.map +1 -1
- package/dist/diagnostics/ca-trust.js +3 -42
- package/dist/diagnostics/ca-trust.js.map +1 -1
- package/dist/diagnostics/diagnose-network-error.d.ts +1 -38
- package/dist/diagnostics/diagnose-network-error.d.ts.map +1 -1
- package/dist/diagnostics/diagnose-network-error.js +26 -37
- package/dist/diagnostics/diagnose-network-error.js.map +1 -1
- package/dist/diagnostics/doctor.d.ts +13 -65
- package/dist/diagnostics/doctor.d.ts.map +1 -1
- package/dist/diagnostics/doctor.js +46 -70
- package/dist/diagnostics/doctor.js.map +1 -1
- package/dist/diagnostics/startup-self-probe.d.ts +3 -25
- package/dist/diagnostics/startup-self-probe.d.ts.map +1 -1
- package/dist/diagnostics/startup-self-probe.js +11 -48
- package/dist/diagnostics/startup-self-probe.js.map +1 -1
- package/dist/errors/hints.d.ts +0 -44
- package/dist/errors/hints.d.ts.map +1 -1
- package/dist/errors/hints.js +0 -32
- package/dist/errors/hints.js.map +1 -1
- package/dist/errors/mask.d.ts +0 -31
- package/dist/errors/mask.d.ts.map +1 -1
- package/dist/errors/mask.js +0 -32
- package/dist/errors/mask.js.map +1 -1
- package/dist/errors/redact-credentials.d.ts +2 -0
- package/dist/errors/redact-credentials.d.ts.map +1 -0
- package/dist/errors/redact-credentials.js +13 -0
- package/dist/errors/redact-credentials.js.map +1 -0
- package/dist/errors/sanitize.d.ts +0 -29
- package/dist/errors/sanitize.d.ts.map +1 -1
- package/dist/errors/sanitize.js +0 -40
- package/dist/errors/sanitize.js.map +1 -1
- package/dist/errors.d.ts +6 -17
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +16 -21
- package/dist/errors.js.map +1 -1
- package/dist/gateway/advanced-read-tool.d.ts +0 -32
- package/dist/gateway/advanced-read-tool.d.ts.map +1 -1
- package/dist/gateway/advanced-read-tool.js +43 -111
- package/dist/gateway/advanced-read-tool.js.map +1 -1
- package/dist/gateway/advanced-tool/discovery.d.ts +1 -12
- package/dist/gateway/advanced-tool/discovery.d.ts.map +1 -1
- package/dist/gateway/advanced-tool/discovery.js +18 -16
- package/dist/gateway/advanced-tool/discovery.js.map +1 -1
- package/dist/gateway/advanced-tool/domains.d.ts +7 -66
- package/dist/gateway/advanced-tool/domains.d.ts.map +1 -1
- package/dist/gateway/advanced-tool/domains.js +36 -80
- package/dist/gateway/advanced-tool/domains.js.map +1 -1
- package/dist/gateway/advanced-tool/execute.d.ts +0 -25
- package/dist/gateway/advanced-tool/execute.d.ts.map +1 -1
- package/dist/gateway/advanced-tool/execute.js +13 -49
- package/dist/gateway/advanced-tool/execute.js.map +1 -1
- package/dist/gateway/advanced-tool/index.d.ts +1 -32
- package/dist/gateway/advanced-tool/index.d.ts.map +1 -1
- package/dist/gateway/advanced-tool/index.js +1 -35
- package/dist/gateway/advanced-tool/index.js.map +1 -1
- package/dist/gateway/advanced-tool/register.d.ts +0 -14
- package/dist/gateway/advanced-tool/register.d.ts.map +1 -1
- package/dist/gateway/advanced-tool/register.js +22 -58
- package/dist/gateway/advanced-tool/register.js.map +1 -1
- package/dist/gateway/advanced-tool.d.ts +0 -11
- package/dist/gateway/advanced-tool.d.ts.map +1 -1
- package/dist/gateway/advanced-tool.js +0 -11
- package/dist/gateway/advanced-tool.js.map +1 -1
- package/dist/gateway/capturing-server.d.ts +3 -88
- package/dist/gateway/capturing-server.d.ts.map +1 -1
- package/dist/gateway/capturing-server.js +0 -77
- package/dist/gateway/capturing-server.js.map +1 -1
- package/dist/gateway/essentials.d.ts +1 -63
- package/dist/gateway/essentials.d.ts.map +1 -1
- package/dist/gateway/essentials.js +10 -174
- package/dist/gateway/essentials.js.map +1 -1
- package/dist/gateway/test-support.d.ts +0 -28
- package/dist/gateway/test-support.d.ts.map +1 -1
- package/dist/gateway/test-support.js +0 -29
- package/dist/gateway/test-support.js.map +1 -1
- package/dist/health-response.d.ts +2 -0
- package/dist/health-response.d.ts.map +1 -0
- package/dist/health-response.js +7 -0
- package/dist/health-response.js.map +1 -0
- package/dist/icon-data.js +0 -3
- package/dist/icon-data.js.map +1 -1
- package/dist/index.d.ts +7 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -130
- package/dist/index.js.map +1 -1
- package/dist/install-skill.d.ts +0 -44
- package/dist/install-skill.d.ts.map +1 -1
- package/dist/install-skill.js +5 -46
- package/dist/install-skill.js.map +1 -1
- package/dist/net/extra-headers.d.ts +0 -58
- package/dist/net/extra-headers.d.ts.map +1 -1
- package/dist/net/extra-headers.js +0 -67
- package/dist/net/extra-headers.js.map +1 -1
- package/dist/net/internal-host.d.ts +0 -31
- package/dist/net/internal-host.d.ts.map +1 -1
- package/dist/net/internal-host.js +7 -65
- package/dist/net/internal-host.js.map +1 -1
- package/dist/net/proxy-dispatcher.d.ts +0 -37
- package/dist/net/proxy-dispatcher.d.ts.map +1 -1
- package/dist/net/proxy-dispatcher.js +0 -40
- package/dist/net/proxy-dispatcher.js.map +1 -1
- package/dist/net/public-fetch.d.ts +53 -0
- package/dist/net/public-fetch.d.ts.map +1 -0
- package/dist/net/public-fetch.js +143 -0
- package/dist/net/public-fetch.js.map +1 -0
- package/dist/net/public-page-report.d.ts +26 -0
- package/dist/net/public-page-report.d.ts.map +1 -0
- package/dist/net/public-page-report.js +145 -0
- package/dist/net/public-page-report.js.map +1 -0
- package/dist/net/redirect-safe-fetch.d.ts +14 -0
- package/dist/net/redirect-safe-fetch.d.ts.map +1 -0
- package/dist/net/redirect-safe-fetch.js +61 -0
- package/dist/net/redirect-safe-fetch.js.map +1 -0
- package/dist/net/session-recovery-fetch.d.ts +7 -0
- package/dist/net/session-recovery-fetch.d.ts.map +1 -0
- package/dist/net/session-recovery-fetch.js +139 -0
- package/dist/net/session-recovery-fetch.js.map +1 -0
- package/dist/net/site-basic-auth.d.ts +1 -59
- package/dist/net/site-basic-auth.d.ts.map +1 -1
- package/dist/net/site-basic-auth.js +5 -94
- package/dist/net/site-basic-auth.js.map +1 -1
- package/dist/package-version.d.ts +2 -0
- package/dist/package-version.d.ts.map +1 -0
- package/dist/package-version.js +15 -0
- package/dist/package-version.js.map +1 -0
- package/dist/platform/detect.d.ts +0 -54
- package/dist/platform/detect.d.ts.map +1 -1
- package/dist/platform/detect.js +0 -53
- package/dist/platform/detect.js.map +1 -1
- package/dist/platform/index.d.ts +0 -100
- package/dist/platform/index.d.ts.map +1 -1
- package/dist/platform/index.js +0 -106
- package/dist/platform/index.js.map +1 -1
- package/dist/platform/joomla.d.ts +0 -35
- package/dist/platform/joomla.d.ts.map +1 -1
- package/dist/platform/joomla.js +0 -35
- package/dist/platform/joomla.js.map +1 -1
- package/dist/proxy/bridge.d.ts +36 -76
- package/dist/proxy/bridge.d.ts.map +1 -1
- package/dist/proxy/bridge.js +443 -136
- package/dist/proxy/bridge.js.map +1 -1
- package/dist/proxy/confirm-elicitation.d.ts +22 -0
- package/dist/proxy/confirm-elicitation.d.ts.map +1 -0
- package/dist/proxy/confirm-elicitation.js +170 -0
- package/dist/proxy/confirm-elicitation.js.map +1 -0
- package/dist/proxy/confirm-question-contract.d.ts +6 -0
- package/dist/proxy/confirm-question-contract.d.ts.map +1 -0
- package/dist/proxy/confirm-question-contract.js +9 -0
- package/dist/proxy/confirm-question-contract.js.map +1 -0
- package/dist/proxy/confirm-question.d.ts +2 -0
- package/dist/proxy/confirm-question.d.ts.map +1 -0
- package/dist/proxy/confirm-question.js +125 -0
- package/dist/proxy/confirm-question.js.map +1 -0
- package/dist/proxy/instructions.d.ts +4 -0
- package/dist/proxy/instructions.d.ts.map +1 -0
- package/dist/proxy/instructions.js +12 -0
- package/dist/proxy/instructions.js.map +1 -0
- package/dist/proxy/mode.d.ts +14 -9
- package/dist/proxy/mode.d.ts.map +1 -1
- package/dist/proxy/mode.js +58 -34
- package/dist/proxy/mode.js.map +1 -1
- package/dist/proxy/multi-site.d.ts +42 -0
- package/dist/proxy/multi-site.d.ts.map +1 -0
- package/dist/proxy/multi-site.js +134 -0
- package/dist/proxy/multi-site.js.map +1 -0
- package/dist/proxy/request-headers.d.ts +9 -0
- package/dist/proxy/request-headers.d.ts.map +1 -0
- package/dist/proxy/request-headers.js +17 -0
- package/dist/proxy/request-headers.js.map +1 -0
- package/dist/proxy/shadow-tools.d.ts +9 -0
- package/dist/proxy/shadow-tools.d.ts.map +1 -0
- package/dist/proxy/shadow-tools.js +42 -0
- package/dist/proxy/shadow-tools.js.map +1 -0
- package/dist/proxy/tools-list-cap.d.ts +7 -0
- package/dist/proxy/tools-list-cap.d.ts.map +1 -0
- package/dist/proxy/tools-list-cap.js +14 -0
- package/dist/proxy/tools-list-cap.js.map +1 -0
- package/dist/proxy/transport-uncertainty.d.ts +2 -0
- package/dist/proxy/transport-uncertainty.d.ts.map +1 -0
- package/dist/proxy/transport-uncertainty.js +8 -0
- package/dist/proxy/transport-uncertainty.js.map +1 -0
- package/dist/proxy/upstream-error.d.ts +7 -0
- package/dist/proxy/upstream-error.d.ts.map +1 -0
- package/dist/proxy/upstream-error.js +35 -0
- package/dist/proxy/upstream-error.js.map +1 -0
- package/dist/proxy/wire-dialect.d.ts +5 -0
- package/dist/proxy/wire-dialect.d.ts.map +1 -0
- package/dist/proxy/wire-dialect.js +33 -0
- package/dist/proxy/wire-dialect.js.map +1 -0
- package/dist/server.d.ts +14 -82
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +107 -203
- package/dist/server.js.map +1 -1
- package/dist/setup/banner-color.d.ts +13 -0
- package/dist/setup/banner-color.d.ts.map +1 -0
- package/dist/setup/banner-color.js +93 -0
- package/dist/setup/banner-color.js.map +1 -0
- package/dist/setup/banner.d.ts +22 -0
- package/dist/setup/banner.d.ts.map +1 -0
- package/dist/setup/banner.js +119 -0
- package/dist/setup/banner.js.map +1 -0
- package/dist/setup/ca-recovery.d.ts +20 -0
- package/dist/setup/ca-recovery.d.ts.map +1 -0
- package/dist/setup/ca-recovery.js +92 -0
- package/dist/setup/ca-recovery.js.map +1 -0
- package/dist/setup/closing.d.ts +15 -0
- package/dist/setup/closing.d.ts.map +1 -0
- package/dist/setup/closing.js +43 -0
- package/dist/setup/closing.js.map +1 -0
- package/dist/setup/corporate-ca.d.ts +16 -0
- package/dist/setup/corporate-ca.d.ts.map +1 -0
- package/dist/setup/corporate-ca.js +32 -0
- package/dist/setup/corporate-ca.js.map +1 -0
- package/dist/setup/host-platform.d.ts +8 -0
- package/dist/setup/host-platform.d.ts.map +1 -0
- package/dist/setup/host-platform.js +21 -0
- package/dist/setup/host-platform.js.map +1 -0
- package/dist/setup/install-configs.d.ts +18 -0
- package/dist/setup/install-configs.d.ts.map +1 -0
- package/dist/setup/install-configs.js +70 -0
- package/dist/setup/install-configs.js.map +1 -0
- package/dist/setup/multi-site-loop.d.ts +14 -0
- package/dist/setup/multi-site-loop.d.ts.map +1 -0
- package/dist/setup/multi-site-loop.js +20 -0
- package/dist/setup/multi-site-loop.js.map +1 -0
- package/dist/setup/phases.d.ts +18 -0
- package/dist/setup/phases.d.ts.map +1 -0
- package/dist/setup/phases.js +55 -0
- package/dist/setup/phases.js.map +1 -0
- package/dist/setup/registry-remedy.d.ts +12 -0
- package/dist/setup/registry-remedy.d.ts.map +1 -0
- package/dist/setup/registry-remedy.js +37 -0
- package/dist/setup/registry-remedy.js.map +1 -0
- package/dist/setup/resume.d.ts +28 -0
- package/dist/setup/resume.d.ts.map +1 -0
- package/dist/setup/resume.js +99 -0
- package/dist/setup/resume.js.map +1 -0
- package/dist/setup-ca-env.d.ts +0 -30
- package/dist/setup-ca-env.d.ts.map +1 -1
- package/dist/setup-ca-env.js +0 -28
- package/dist/setup-ca-env.js.map +1 -1
- package/dist/setup-ca-reprobe.d.ts +0 -25
- package/dist/setup-ca-reprobe.d.ts.map +1 -1
- package/dist/setup-ca-reprobe.js +0 -34
- package/dist/setup-ca-reprobe.js.map +1 -1
- package/dist/setup-cli-confirm.d.ts +0 -34
- package/dist/setup-cli-confirm.d.ts.map +1 -1
- package/dist/setup-cli-confirm.js +0 -36
- package/dist/setup-cli-confirm.js.map +1 -1
- package/dist/setup-cli.d.ts +6 -167
- package/dist/setup-cli.d.ts.map +1 -1
- package/dist/setup-cli.js +161 -173
- package/dist/setup-cli.js.map +1 -1
- package/dist/setup-npx-spec.d.ts +0 -36
- package/dist/setup-npx-spec.d.ts.map +1 -1
- package/dist/setup-npx-spec.js +0 -38
- package/dist/setup-npx-spec.js.map +1 -1
- package/dist/setup-prompts.d.ts +5 -70
- package/dist/setup-prompts.d.ts.map +1 -1
- package/dist/setup-prompts.js +67 -107
- package/dist/setup-prompts.js.map +1 -1
- package/dist/setup-token.d.ts +0 -34
- package/dist/setup-token.d.ts.map +1 -1
- package/dist/setup-token.js +0 -40
- package/dist/setup-token.js.map +1 -1
- package/dist/setup-wizard-defaults.d.ts +0 -36
- package/dist/setup-wizard-defaults.d.ts.map +1 -1
- package/dist/setup-wizard-defaults.js +0 -75
- package/dist/setup-wizard-defaults.js.map +1 -1
- package/dist/setup-wizard-handshake.d.ts +1 -19
- package/dist/setup-wizard-handshake.d.ts.map +1 -1
- package/dist/setup-wizard-handshake.js +8 -45
- package/dist/setup-wizard-handshake.js.map +1 -1
- package/dist/setup-wizard-types.d.ts +16 -209
- package/dist/setup-wizard-types.d.ts.map +1 -1
- package/dist/setup-wizard-types.js +0 -9
- package/dist/setup-wizard-types.js.map +1 -1
- package/dist/setup-wizard.d.ts +0 -28
- package/dist/setup-wizard.d.ts.map +1 -1
- package/dist/setup-wizard.js +167 -412
- package/dist/setup-wizard.js.map +1 -1
- package/dist/setup.d.ts +0 -15
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +0 -15
- package/dist/setup.js.map +1 -1
- package/dist/sites/bootstrap.d.ts +0 -38
- package/dist/sites/bootstrap.d.ts.map +1 -1
- package/dist/sites/bootstrap.js +0 -44
- package/dist/sites/bootstrap.js.map +1 -1
- package/dist/sites/cli/add-site.d.ts +0 -76
- package/dist/sites/cli/add-site.d.ts.map +1 -1
- package/dist/sites/cli/add-site.js +0 -71
- package/dist/sites/cli/add-site.js.map +1 -1
- package/dist/sites/cli/list-sites.d.ts +0 -31
- package/dist/sites/cli/list-sites.d.ts.map +1 -1
- package/dist/sites/cli/list-sites.js +0 -45
- package/dist/sites/cli/list-sites.js.map +1 -1
- package/dist/sites/cli/remove-site.d.ts +0 -37
- package/dist/sites/cli/remove-site.d.ts.map +1 -1
- package/dist/sites/cli/remove-site.js +0 -37
- package/dist/sites/cli/remove-site.js.map +1 -1
- package/dist/sites/cli/set-default.d.ts +0 -25
- package/dist/sites/cli/set-default.d.ts.map +1 -1
- package/dist/sites/cli/set-default.js +0 -22
- package/dist/sites/cli/set-default.js.map +1 -1
- package/dist/sites/cli/test-site.d.ts +0 -44
- package/dist/sites/cli/test-site.d.ts.map +1 -1
- package/dist/sites/cli/test-site.js +0 -39
- package/dist/sites/cli/test-site.js.map +1 -1
- package/dist/sites/client-pool.d.ts +11 -164
- package/dist/sites/client-pool.d.ts.map +1 -1
- package/dist/sites/client-pool.js +73 -194
- package/dist/sites/client-pool.js.map +1 -1
- package/dist/sites/config-problem.d.ts +2 -0
- package/dist/sites/config-problem.d.ts.map +1 -0
- package/dist/sites/config-problem.js +13 -0
- package/dist/sites/config-problem.js.map +1 -0
- package/dist/sites/env-bridge.d.ts +0 -69
- package/dist/sites/env-bridge.d.ts.map +1 -1
- package/dist/sites/env-bridge.js +2 -71
- package/dist/sites/env-bridge.js.map +1 -1
- package/dist/sites/op-inject.d.ts +23 -0
- package/dist/sites/op-inject.d.ts.map +1 -0
- package/dist/sites/op-inject.js +131 -0
- package/dist/sites/op-inject.js.map +1 -0
- package/dist/sites/paths.d.ts +0 -19
- package/dist/sites/paths.d.ts.map +1 -1
- package/dist/sites/paths.js +0 -19
- package/dist/sites/paths.js.map +1 -1
- package/dist/sites/probe.d.ts +1 -47
- package/dist/sites/probe.d.ts.map +1 -1
- package/dist/sites/probe.js +4 -46
- package/dist/sites/probe.js.map +1 -1
- package/dist/sites/registry.d.ts +4 -135
- package/dist/sites/registry.d.ts.map +1 -1
- package/dist/sites/registry.js +4 -98
- package/dist/sites/registry.js.map +1 -1
- package/dist/sites/schema.d.ts +3 -51
- package/dist/sites/schema.d.ts.map +1 -1
- package/dist/sites/schema.js +6 -52
- package/dist/sites/schema.js.map +1 -1
- package/dist/sites/secret-resolver.d.ts +6 -76
- package/dist/sites/secret-resolver.d.ts.map +1 -1
- package/dist/sites/secret-resolver.js +39 -104
- package/dist/sites/secret-resolver.js.map +1 -1
- package/dist/sites/store.d.ts +12 -69
- package/dist/sites/store.d.ts.map +1 -1
- package/dist/sites/store.js +37 -86
- package/dist/sites/store.js.map +1 -1
- package/dist/sites/substituted-registry.d.ts +11 -0
- package/dist/sites/substituted-registry.d.ts.map +1 -0
- package/dist/sites/substituted-registry.js +13 -0
- package/dist/sites/substituted-registry.js.map +1 -0
- package/dist/sites/tools/fetch-public-url.d.ts +4 -0
- package/dist/sites/tools/fetch-public-url.d.ts.map +1 -0
- package/dist/sites/tools/fetch-public-url.js +231 -0
- package/dist/sites/tools/fetch-public-url.js.map +1 -0
- package/dist/sites/tools/index.d.ts +2 -26
- package/dist/sites/tools/index.d.ts.map +1 -1
- package/dist/sites/tools/index.js +5 -28
- package/dist/sites/tools/index.js.map +1 -1
- package/dist/sites/tools/sites-list.d.ts +3 -47
- package/dist/sites/tools/sites-list.d.ts.map +1 -1
- package/dist/sites/tools/sites-list.js +68 -80
- package/dist/sites/tools/sites-list.js.map +1 -1
- package/dist/sites/tools/sites-overview.d.ts +4 -0
- package/dist/sites/tools/sites-overview.d.ts.map +1 -0
- package/dist/sites/tools/sites-overview.js +209 -0
- package/dist/sites/tools/sites-overview.js.map +1 -0
- package/dist/sites/tools/sites-test.d.ts +2 -45
- package/dist/sites/tools/sites-test.d.ts.map +1 -1
- package/dist/sites/tools/sites-test.js +1 -56
- package/dist/sites/tools/sites-test.js.map +1 -1
- package/dist/sites/tools/use-site.d.ts +2 -45
- package/dist/sites/tools/use-site.d.ts.map +1 -1
- package/dist/sites/tools/use-site.js +31 -80
- package/dist/sites/tools/use-site.js.map +1 -1
- package/dist/sites/unknown-name-result.d.ts +10 -0
- package/dist/sites/unknown-name-result.d.ts.map +1 -0
- package/dist/sites/unknown-name-result.js +13 -0
- package/dist/sites/unknown-name-result.js.map +1 -0
- package/dist/skill-instructions.d.ts +7 -0
- package/dist/skill-instructions.d.ts.map +1 -0
- package/dist/skill-instructions.js +84 -0
- package/dist/skill-instructions.js.map +1 -0
- package/dist/skill-loader.d.ts +0 -102
- package/dist/skill-loader.d.ts.map +1 -1
- package/dist/skill-loader.js +4 -142
- package/dist/skill-loader.js.map +1 -1
- package/dist/skill-manifest.d.ts +0 -20
- package/dist/skill-manifest.d.ts.map +1 -1
- package/dist/skill-manifest.js +1 -21
- package/dist/skill-manifest.js.map +1 -1
- package/dist/skill-topics.d.ts +19 -0
- package/dist/skill-topics.d.ts.map +1 -0
- package/dist/skill-topics.js +181 -0
- package/dist/skill-topics.js.map +1 -0
- package/dist/tools/active-site.d.ts +16 -0
- package/dist/tools/active-site.d.ts.map +1 -0
- package/dist/tools/active-site.js +55 -0
- package/dist/tools/active-site.js.map +1 -0
- package/dist/tools/bind-guidance.d.ts +2 -72
- package/dist/tools/bind-guidance.d.ts.map +1 -1
- package/dist/tools/bind-guidance.js +2 -72
- package/dist/tools/bind-guidance.js.map +1 -1
- package/dist/tools/budgeted-table.d.ts +16 -0
- package/dist/tools/budgeted-table.d.ts.map +1 -0
- package/dist/tools/budgeted-table.js +203 -0
- package/dist/tools/budgeted-table.js.map +1 -0
- package/dist/tools/elements/bind-output-schema.d.ts +69 -0
- package/dist/tools/elements/bind-output-schema.d.ts.map +1 -0
- package/dist/tools/elements/bind-output-schema.js +64 -0
- package/dist/tools/elements/bind-output-schema.js.map +1 -0
- package/dist/tools/elements/builders.d.ts +1 -22
- package/dist/tools/elements/builders.d.ts.map +1 -1
- package/dist/tools/elements/builders.js +171 -133
- package/dist/tools/elements/builders.js.map +1 -1
- package/dist/tools/elements/index.d.ts +0 -26
- package/dist/tools/elements/index.d.ts.map +1 -1
- package/dist/tools/elements/index.js +0 -25
- package/dist/tools/elements/index.js.map +1 -1
- package/dist/tools/elements/read-output-schemas.d.ts +121 -0
- package/dist/tools/elements/read-output-schemas.d.ts.map +1 -0
- package/dist/tools/elements/read-output-schemas.js +225 -0
- package/dist/tools/elements/read-output-schemas.js.map +1 -0
- package/dist/tools/elements/write-output-schemas.d.ts +185 -0
- package/dist/tools/elements/write-output-schemas.d.ts.map +1 -0
- package/dist/tools/elements/write-output-schemas.js +98 -0
- package/dist/tools/elements/write-output-schemas.js.map +1 -0
- package/dist/tools/elements.d.ts +0 -11
- package/dist/tools/elements.d.ts.map +1 -1
- package/dist/tools/elements.js +0 -11
- package/dist/tools/elements.js.map +1 -1
- package/dist/tools/format/health-format.d.ts +42 -43
- package/dist/tools/format/health-format.d.ts.map +1 -1
- package/dist/tools/format/health-format.js +32 -55
- package/dist/tools/format/health-format.js.map +1 -1
- package/dist/tools/format/inspection-format.d.ts +4 -49
- package/dist/tools/format/inspection-format.d.ts.map +1 -1
- package/dist/tools/format/inspection-format.js +46 -114
- package/dist/tools/format/inspection-format.js.map +1 -1
- package/dist/tools/format/pages-format.d.ts +32 -69
- package/dist/tools/format/pages-format.d.ts.map +1 -1
- package/dist/tools/format/pages-format.js +115 -133
- package/dist/tools/format/pages-format.js.map +1 -1
- package/dist/tools/format/sources-format.d.ts +5 -39
- package/dist/tools/format/sources-format.d.ts.map +1 -1
- package/dist/tools/format/sources-format.js +57 -87
- package/dist/tools/format/sources-format.js.map +1 -1
- package/dist/tools/health-output-schemas.d.ts +82 -0
- package/dist/tools/health-output-schemas.d.ts.map +1 -0
- package/dist/tools/health-output-schemas.js +130 -0
- package/dist/tools/health-output-schemas.js.map +1 -0
- package/dist/tools/health.d.ts +2 -20
- package/dist/tools/health.d.ts.map +1 -1
- package/dist/tools/health.js +59 -184
- package/dist/tools/health.js.map +1 -1
- package/dist/tools/index.d.ts +1 -26
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +13 -33
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/inspection.d.ts +21 -17
- package/dist/tools/inspection.d.ts.map +1 -1
- package/dist/tools/inspection.js +431 -268
- package/dist/tools/inspection.js.map +1 -1
- package/dist/tools/library.d.ts +118 -126
- package/dist/tools/library.d.ts.map +1 -1
- package/dist/tools/library.js +723 -456
- package/dist/tools/library.js.map +1 -1
- package/dist/tools/local-content/builders.d.ts +1 -17
- package/dist/tools/local-content/builders.d.ts.map +1 -1
- package/dist/tools/local-content/builders.js +105 -48
- package/dist/tools/local-content/builders.js.map +1 -1
- package/dist/tools/local-content/index.d.ts +0 -15
- package/dist/tools/local-content/index.d.ts.map +1 -1
- package/dist/tools/local-content/index.js +0 -14
- package/dist/tools/local-content/index.js.map +1 -1
- package/dist/tools/local-content/schemas.d.ts +31 -47
- package/dist/tools/local-content/schemas.d.ts.map +1 -1
- package/dist/tools/local-content/schemas.js +33 -62
- package/dist/tools/local-content/schemas.js.map +1 -1
- package/dist/tools/modules/builders.d.ts +4 -0
- package/dist/tools/modules/builders.d.ts.map +1 -0
- package/dist/tools/modules/builders.js +58 -0
- package/dist/tools/modules/builders.js.map +1 -0
- package/dist/tools/modules/index.d.ts +2 -0
- package/dist/tools/modules/index.d.ts.map +1 -0
- package/dist/tools/modules/index.js +2 -0
- package/dist/tools/modules/index.js.map +1 -0
- package/dist/tools/modules/module-id-schema.d.ts +4 -0
- package/dist/tools/modules/module-id-schema.d.ts.map +1 -0
- package/dist/tools/modules/module-id-schema.js +14 -0
- package/dist/tools/modules/module-id-schema.js.map +1 -0
- package/dist/tools/modules/module-type-fields.d.ts +10 -0
- package/dist/tools/modules/module-type-fields.d.ts.map +1 -0
- package/dist/tools/modules/module-type-fields.js +34 -0
- package/dist/tools/modules/module-type-fields.js.map +1 -0
- package/dist/tools/modules/modules-create.d.ts +59 -0
- package/dist/tools/modules/modules-create.d.ts.map +1 -0
- package/dist/tools/modules/modules-create.js +154 -0
- package/dist/tools/modules/modules-create.js.map +1 -0
- package/dist/tools/modules/modules-delete.d.ts +51 -0
- package/dist/tools/modules/modules-delete.d.ts.map +1 -0
- package/dist/tools/modules/modules-delete.js +180 -0
- package/dist/tools/modules/modules-delete.js.map +1 -0
- package/dist/tools/modules/modules-update.d.ts +43 -0
- package/dist/tools/modules/modules-update.d.ts.map +1 -0
- package/dist/tools/modules/modules-update.js +177 -0
- package/dist/tools/modules/modules-update.js.map +1 -0
- package/dist/tools/modules/placement-hints.d.ts +5 -0
- package/dist/tools/modules/placement-hints.d.ts.map +1 -0
- package/dist/tools/modules/placement-hints.js +90 -0
- package/dist/tools/modules/placement-hints.js.map +1 -0
- package/dist/tools/modules/placement-ways.d.ts +13 -0
- package/dist/tools/modules/placement-ways.d.ts.map +1 -0
- package/dist/tools/modules/placement-ways.js +61 -0
- package/dist/tools/modules/placement-ways.js.map +1 -0
- package/dist/tools/multi-items/builders.d.ts +1 -21
- package/dist/tools/multi-items/builders.d.ts.map +1 -1
- package/dist/tools/multi-items/builders.js +22 -67
- package/dist/tools/multi-items/builders.js.map +1 -1
- package/dist/tools/multi-items/index.d.ts +0 -15
- package/dist/tools/multi-items/index.d.ts.map +1 -1
- package/dist/tools/multi-items/index.js +0 -15
- package/dist/tools/multi-items/index.js.map +1 -1
- package/dist/tools/multi-items/item-container-map.d.ts +0 -35
- package/dist/tools/multi-items/item-container-map.d.ts.map +1 -1
- package/dist/tools/multi-items/item-container-map.js +0 -35
- package/dist/tools/multi-items/item-container-map.js.map +1 -1
- package/dist/tools/multi-items/output-schemas.d.ts +101 -0
- package/dist/tools/multi-items/output-schemas.d.ts.map +1 -0
- package/dist/tools/multi-items/output-schemas.js +74 -0
- package/dist/tools/multi-items/output-schemas.js.map +1 -0
- package/dist/tools/navigation/builders.d.ts +3 -0
- package/dist/tools/navigation/builders.d.ts.map +1 -0
- package/dist/tools/navigation/builders.js +25 -0
- package/dist/tools/navigation/builders.js.map +1 -0
- package/dist/tools/navigation/index.d.ts +2 -0
- package/dist/tools/navigation/index.d.ts.map +1 -0
- package/dist/tools/navigation/index.js +2 -0
- package/dist/tools/navigation/index.js.map +1 -0
- package/dist/tools/navigation/schemas.d.ts +16 -0
- package/dist/tools/navigation/schemas.d.ts.map +1 -0
- package/dist/tools/navigation/schemas.js +11 -0
- package/dist/tools/navigation/schemas.js.map +1 -0
- package/dist/tools/output-schema-metadata.d.ts +5 -0
- package/dist/tools/output-schema-metadata.d.ts.map +1 -0
- package/dist/tools/output-schema-metadata.js +83 -0
- package/dist/tools/output-schema-metadata.js.map +1 -0
- package/dist/tools/pages/builders.d.ts +1 -41
- package/dist/tools/pages/builders.d.ts.map +1 -1
- package/dist/tools/pages/builders.js +373 -359
- package/dist/tools/pages/builders.js.map +1 -1
- package/dist/tools/pages/header-transparency.d.ts +34 -0
- package/dist/tools/pages/header-transparency.d.ts.map +1 -0
- package/dist/tools/pages/header-transparency.js +85 -0
- package/dist/tools/pages/header-transparency.js.map +1 -0
- package/dist/tools/pages/index.d.ts +1 -19
- package/dist/tools/pages/index.d.ts.map +1 -1
- package/dist/tools/pages/index.js +1 -19
- package/dist/tools/pages/index.js.map +1 -1
- package/dist/tools/pages/schemas.d.ts +392 -224
- package/dist/tools/pages/schemas.d.ts.map +1 -1
- package/dist/tools/pages/schemas.js +605 -458
- package/dist/tools/pages/schemas.js.map +1 -1
- package/dist/tools/pages/write-output-schemas.d.ts +139 -0
- package/dist/tools/pages/write-output-schemas.d.ts.map +1 -0
- package/dist/tools/pages/write-output-schemas.js +138 -0
- package/dist/tools/pages/write-output-schemas.js.map +1 -0
- package/dist/tools/pages.d.ts +0 -11
- package/dist/tools/pages.d.ts.map +1 -1
- package/dist/tools/pages.js +0 -11
- package/dist/tools/pages.js.map +1 -1
- package/dist/tools/pool-resolve-helper.d.ts +0 -52
- package/dist/tools/pool-resolve-helper.d.ts.map +1 -1
- package/dist/tools/pool-resolve-helper.js +29 -104
- package/dist/tools/pool-resolve-helper.js.map +1 -1
- package/dist/tools/progress-phases.d.ts +0 -42
- package/dist/tools/progress-phases.d.ts.map +1 -1
- package/dist/tools/progress-phases.js +0 -44
- package/dist/tools/progress-phases.js.map +1 -1
- package/dist/tools/response-budget.d.ts +8 -0
- package/dist/tools/response-budget.d.ts.map +1 -0
- package/dist/tools/response-budget.js +7 -0
- package/dist/tools/response-budget.js.map +1 -0
- package/dist/tools/shared-schemas.d.ts +12 -43
- package/dist/tools/shared-schemas.d.ts.map +1 -1
- package/dist/tools/shared-schemas.js +42 -97
- package/dist/tools/shared-schemas.js.map +1 -1
- package/dist/tools/skill/builders.d.ts +3 -0
- package/dist/tools/skill/builders.d.ts.map +1 -0
- package/dist/tools/skill/builders.js +81 -0
- package/dist/tools/skill/builders.js.map +1 -0
- package/dist/tools/sources/builders.d.ts +1 -11
- package/dist/tools/sources/builders.d.ts.map +1 -1
- package/dist/tools/sources/builders.js +195 -173
- package/dist/tools/sources/builders.js.map +1 -1
- package/dist/tools/sources/index.d.ts +0 -17
- package/dist/tools/sources/index.d.ts.map +1 -1
- package/dist/tools/sources/index.js +0 -16
- package/dist/tools/sources/index.js.map +1 -1
- package/dist/tools/sources/read-output-schemas.d.ts +101 -0
- package/dist/tools/sources/read-output-schemas.d.ts.map +1 -0
- package/dist/tools/sources/read-output-schemas.js +105 -0
- package/dist/tools/sources/read-output-schemas.js.map +1 -0
- package/dist/tools/sources/source-name-argument.d.ts +17 -0
- package/dist/tools/sources/source-name-argument.d.ts.map +1 -0
- package/dist/tools/sources/source-name-argument.js +64 -0
- package/dist/tools/sources/source-name-argument.js.map +1 -0
- package/dist/tools/sources/write-output-schemas.d.ts +100 -0
- package/dist/tools/sources/write-output-schemas.d.ts.map +1 -0
- package/dist/tools/sources/write-output-schemas.js +61 -0
- package/dist/tools/sources/write-output-schemas.js.map +1 -0
- package/dist/tools/sources.d.ts +0 -12
- package/dist/tools/sources.d.ts.map +1 -1
- package/dist/tools/sources.js +0 -12
- package/dist/tools/sources.js.map +1 -1
- package/dist/tools/sparse-fields.d.ts +19 -194
- package/dist/tools/sparse-fields.d.ts.map +1 -1
- package/dist/tools/sparse-fields.js +212 -196
- package/dist/tools/sparse-fields.js.map +1 -1
- package/dist/tools/strict-input.d.ts +5 -0
- package/dist/tools/strict-input.d.ts.map +1 -0
- package/dist/tools/strict-input.js +55 -0
- package/dist/tools/strict-input.js.map +1 -0
- package/dist/tools/sublayout/builders.d.ts +1 -21
- package/dist/tools/sublayout/builders.d.ts.map +1 -1
- package/dist/tools/sublayout/builders.js +10 -40
- package/dist/tools/sublayout/builders.js.map +1 -1
- package/dist/tools/sublayout/index.d.ts +1 -11
- package/dist/tools/sublayout/index.d.ts.map +1 -1
- package/dist/tools/sublayout/index.js +1 -11
- package/dist/tools/sublayout/index.js.map +1 -1
- package/dist/tools/sublayout/output-schemas.d.ts +57 -0
- package/dist/tools/sublayout/output-schemas.d.ts.map +1 -0
- package/dist/tools/sublayout/output-schemas.js +51 -0
- package/dist/tools/sublayout/output-schemas.js.map +1 -0
- package/dist/tools/tool-builder/annotations.d.ts +1 -49
- package/dist/tools/tool-builder/annotations.d.ts.map +1 -1
- package/dist/tools/tool-builder/annotations.js +9 -49
- package/dist/tools/tool-builder/annotations.js.map +1 -1
- package/dist/tools/tool-builder/confirm-preview.d.ts +24 -0
- package/dist/tools/tool-builder/confirm-preview.d.ts.map +1 -0
- package/dist/tools/tool-builder/confirm-preview.js +37 -0
- package/dist/tools/tool-builder/confirm-preview.js.map +1 -0
- package/dist/tools/tool-builder/define.d.ts +6 -26
- package/dist/tools/tool-builder/define.d.ts.map +1 -1
- package/dist/tools/tool-builder/define.js +0 -25
- package/dist/tools/tool-builder/define.js.map +1 -1
- package/dist/tools/tool-builder/index.d.ts +3 -26
- package/dist/tools/tool-builder/index.d.ts.map +1 -1
- package/dist/tools/tool-builder/index.js +2 -25
- package/dist/tools/tool-builder/index.js.map +1 -1
- package/dist/tools/tool-builder/results.d.ts +4 -111
- package/dist/tools/tool-builder/results.d.ts.map +1 -1
- package/dist/tools/tool-builder/results.js +258 -250
- package/dist/tools/tool-builder/results.js.map +1 -1
- package/dist/tools/tool-builder/types.d.ts +5 -59
- package/dist/tools/tool-builder/types.d.ts.map +1 -1
- package/dist/tools/tool-builder/types.js +0 -7
- package/dist/tools/tool-builder/types.js.map +1 -1
- package/dist/tools/tool-builder.d.ts +0 -14
- package/dist/tools/tool-builder.d.ts.map +1 -1
- package/dist/tools/tool-builder.js +0 -14
- package/dist/tools/tool-builder.js.map +1 -1
- package/dist/uninstall-skill.d.ts +0 -41
- package/dist/uninstall-skill.d.ts.map +1 -1
- package/dist/uninstall-skill.js +0 -49
- package/dist/uninstall-skill.js.map +1 -1
- package/dist/uninstall.d.ts +0 -41
- package/dist/uninstall.d.ts.map +1 -1
- package/dist/uninstall.js +1 -29
- package/dist/uninstall.js.map +1 -1
- package/dist/update/update-check.d.ts +0 -26
- package/dist/update/update-check.d.ts.map +1 -1
- package/dist/update/update-check.js +0 -25
- package/dist/update/update-check.js.map +1 -1
- package/manifest.json +4 -5
- package/package.json +5 -5
- package/skills/yt-builder-mcp/SKILL.md +2958 -382
- package/dist/tools/elements/handlers-write.d.ts +0 -70
- package/dist/tools/elements/handlers-write.d.ts.map +0 -1
- package/dist/tools/elements/handlers-write.js +0 -700
- package/dist/tools/elements/handlers-write.js.map +0 -1
- package/dist/tools/elements/handlers.d.ts +0 -125
- package/dist/tools/elements/handlers.d.ts.map +0 -1
- package/dist/tools/elements/handlers.js +0 -571
- package/dist/tools/elements/handlers.js.map +0 -1
- package/dist/tools/elements/layout-hierarchy-rules.d.ts +0 -62
- package/dist/tools/elements/layout-hierarchy-rules.d.ts.map +0 -1
- package/dist/tools/elements/layout-hierarchy-rules.js +0 -154
- package/dist/tools/elements/layout-hierarchy-rules.js.map +0 -1
- package/dist/tools/elements/schema-validation.d.ts +0 -96
- package/dist/tools/elements/schema-validation.d.ts.map +0 -1
- package/dist/tools/elements/schema-validation.js +0 -249
- package/dist/tools/elements/schema-validation.js.map +0 -1
- package/dist/tools/elicitation.d.ts +0 -87
- package/dist/tools/elicitation.d.ts.map +0 -1
- package/dist/tools/elicitation.js +0 -100
- package/dist/tools/elicitation.js.map +0 -1
- package/dist/tools/format/elements-format.d.ts +0 -75
- package/dist/tools/format/elements-format.d.ts.map +0 -1
- package/dist/tools/format/elements-format.js +0 -324
- package/dist/tools/format/elements-format.js.map +0 -1
- package/dist/tools/format/source-schema-format.d.ts +0 -74
- package/dist/tools/format/source-schema-format.d.ts.map +0 -1
- package/dist/tools/format/source-schema-format.js +0 -208
- package/dist/tools/format/source-schema-format.js.map +0 -1
- package/dist/tools/layout-flatten.d.ts +0 -84
- package/dist/tools/layout-flatten.d.ts.map +0 -1
- package/dist/tools/layout-flatten.js +0 -129
- package/dist/tools/layout-flatten.js.map +0 -1
- package/dist/tools/local-content/handlers.d.ts +0 -54
- package/dist/tools/local-content/handlers.d.ts.map +0 -1
- package/dist/tools/local-content/handlers.js +0 -316
- package/dist/tools/local-content/handlers.js.map +0 -1
- package/dist/tools/multi-items/clean-implode-handler.d.ts +0 -37
- package/dist/tools/multi-items/clean-implode-handler.d.ts.map +0 -1
- package/dist/tools/multi-items/clean-implode-handler.js +0 -65
- package/dist/tools/multi-items/clean-implode-handler.js.map +0 -1
- package/dist/tools/multi-items/format/inspection-format.d.ts +0 -41
- package/dist/tools/multi-items/format/inspection-format.d.ts.map +0 -1
- package/dist/tools/multi-items/format/inspection-format.js +0 -64
- package/dist/tools/multi-items/format/inspection-format.js.map +0 -1
- package/dist/tools/multi-items/inspect-handler.d.ts +0 -97
- package/dist/tools/multi-items/inspect-handler.d.ts.map +0 -1
- package/dist/tools/multi-items/inspect-handler.js +0 -323
- package/dist/tools/multi-items/inspect-handler.js.map +0 -1
- package/dist/tools/multi-items/inspection-cache.d.ts +0 -85
- package/dist/tools/multi-items/inspection-cache.d.ts.map +0 -1
- package/dist/tools/multi-items/inspection-cache.js +0 -126
- package/dist/tools/multi-items/inspection-cache.js.map +0 -1
- package/dist/tools/pages/handlers-audit.d.ts +0 -129
- package/dist/tools/pages/handlers-audit.d.ts.map +0 -1
- package/dist/tools/pages/handlers-audit.js +0 -704
- package/dist/tools/pages/handlers-audit.js.map +0 -1
- package/dist/tools/pages/handlers-read.d.ts +0 -95
- package/dist/tools/pages/handlers-read.d.ts.map +0 -1
- package/dist/tools/pages/handlers-read.js +0 -929
- package/dist/tools/pages/handlers-read.js.map +0 -1
- package/dist/tools/pages/handlers-write.d.ts +0 -212
- package/dist/tools/pages/handlers-write.d.ts.map +0 -1
- package/dist/tools/pages/handlers-write.js +0 -418
- package/dist/tools/pages/handlers-write.js.map +0 -1
- package/dist/tools/pages/target.d.ts +0 -162
- package/dist/tools/pages/target.d.ts.map +0 -1
- package/dist/tools/pages/target.js +0 -239
- package/dist/tools/pages/target.js.map +0 -1
- package/dist/tools/sources/handlers-bind.d.ts +0 -148
- package/dist/tools/sources/handlers-bind.d.ts.map +0 -1
- package/dist/tools/sources/handlers-bind.js +0 -655
- package/dist/tools/sources/handlers-bind.js.map +0 -1
- package/dist/tools/sources/handlers.d.ts +0 -114
- package/dist/tools/sources/handlers.d.ts.map +0 -1
- package/dist/tools/sources/handlers.js +0 -285
- package/dist/tools/sources/handlers.js.map +0 -1
- package/dist/tools/sublayout/inspect-sublayout-handler.d.ts +0 -95
- package/dist/tools/sublayout/inspect-sublayout-handler.d.ts.map +0 -1
- package/dist/tools/sublayout/inspect-sublayout-handler.js +0 -181
- package/dist/tools/sublayout/inspect-sublayout-handler.js.map +0 -1
|
@@ -1,65 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parse `YTB_MCP_SITE_BASIC_AUTH` ('user:pass') into URL **userinfo** that is
|
|
3
|
-
* injected into the upstream request URL (`https://user:pass@host/…`) on BOTH
|
|
4
|
-
* transports (fat-mode {@link RestClient} base URL and proxy-mode endpoint URL).
|
|
5
|
-
*
|
|
6
|
-
* Why this exists (U3 — Glöckle post-cert QA blocker): a site fronted by a pure
|
|
7
|
-
* HTTP **Basic-Auth realm** (e.g. `qa.gloeckle.de`) requires
|
|
8
|
-
* `Authorization: Basic …`. But the plugin Bearer already owns the single
|
|
9
|
-
* `Authorization` header on every outbound request, and `YTB_MCP_EXTRA_HEADERS`
|
|
10
|
-
* HARD-FORBIDS an `Authorization` key (see {@link parseExtraHeaders}) — so Basic
|
|
11
|
-
* and the Bearer collide on the one header and the site is unreachable.
|
|
12
|
-
*
|
|
13
|
-
* The fix routes the site-level Basic credentials on a **separate transport**:
|
|
14
|
-
* URL userinfo. Userinfo and the `Authorization` header are independent — undici
|
|
15
|
-
* / fetch turn `https://user:pass@host` into an `Authorization: Basic …` toward
|
|
16
|
-
* the **gateway/realm**, while we keep emitting `Authorization: Bearer …` toward
|
|
17
|
-
* the **plugin** behind it. The Bearer is never touched; the realm and the
|
|
18
|
-
* plugin each get the credential they expect.
|
|
19
|
-
*
|
|
20
|
-
* ── Accepted format ─────────────────────────────────────────────────────────
|
|
21
|
-
* `user:pass` — split on the FIRST colon (passwords may contain colons).
|
|
22
|
-
* - The username MUST be non-empty.
|
|
23
|
-
* - The password MAY be empty (some realms use a user-only token).
|
|
24
|
-
* Both halves are percent-encoded for userinfo via the WHATWG URL encoder, so
|
|
25
|
-
* reserved chars (`@`, `/`, `:`, space, …) survive into a valid URL.
|
|
26
|
-
*
|
|
27
|
-
* ── Security invariants ─────────────────────────────────────────────────────
|
|
28
|
-
* - The credential value is **NEVER** echoed in a warning or logged. Malformed
|
|
29
|
-
* input yields a generic "missing colon / empty username" warning only.
|
|
30
|
-
* - This channel NEVER touches the `Authorization` header — it rides URL
|
|
31
|
-
* userinfo exclusively, so the Bearer always wins (orthogonal transports).
|
|
32
|
-
*
|
|
33
|
-
* Pure + deterministic. `warnings` collects non-fatal issues; the caller (the
|
|
34
|
-
* server boot path) surfaces them once to stderr.
|
|
35
|
-
*
|
|
36
|
-
* @license MIT
|
|
37
|
-
*/
|
|
38
|
-
/** Canonical env-var name for the site-level HTTP Basic-Auth feature. */
|
|
39
1
|
export declare const ENV_SITE_BASIC_AUTH = "YTB_MCP_SITE_BASIC_AUTH";
|
|
40
2
|
export interface ParsedSiteBasicAuth {
|
|
41
|
-
|
|
42
|
-
* Percent-encoded `user:pass` userinfo ready to splice into a URL, or
|
|
43
|
-
* `null` when the env var is unset/blank/malformed. NEVER contains the raw
|
|
44
|
-
* (un-encoded) credential beyond what userinfo requires.
|
|
45
|
-
*/
|
|
46
|
-
readonly userinfo: string | null;
|
|
47
|
-
/** Non-fatal issues (missing colon, empty username). Never echo the secret. */
|
|
3
|
+
readonly header: string | null;
|
|
48
4
|
readonly warnings: readonly string[];
|
|
49
5
|
}
|
|
50
|
-
/**
|
|
51
|
-
* Parse `YTB_MCP_SITE_BASIC_AUTH` from `env` (default `process.env`). Returns
|
|
52
|
-
* `{ userinfo: null, warnings: [] }` when unset/blank, and a generic warning
|
|
53
|
-
* (never containing the secret) when the value is malformed.
|
|
54
|
-
*/
|
|
55
6
|
export declare function parseSiteBasicAuth(env?: NodeJS.ProcessEnv): ParsedSiteBasicAuth;
|
|
56
|
-
/**
|
|
57
|
-
* Splice `userinfo` (a percent-encoded `user:pass`) into `url`, returning the
|
|
58
|
-
* resulting href. When `userinfo` is `null`, the URL is returned unchanged
|
|
59
|
-
* (string form). Any pre-existing userinfo on the URL is overwritten.
|
|
60
|
-
*
|
|
61
|
-
* This is the ONLY mutation the site-Basic channel performs — it never adds or
|
|
62
|
-
* alters a header, so the Bearer in `Authorization` is untouched.
|
|
63
|
-
*/
|
|
64
|
-
export declare function applyUserinfoToUrl(url: string | URL, userinfo: string | null): string;
|
|
65
7
|
//# sourceMappingURL=site-basic-auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-basic-auth.d.ts","sourceRoot":"","sources":["../../src/net/site-basic-auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"site-basic-auth.d.ts","sourceRoot":"","sources":["../../src/net/site-basic-auth.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,mBAAmB,4BAA4B,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAKhC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAOD,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,mBAAmB,CA+B5F"}
|
|
@@ -1,76 +1,13 @@
|
|
|
1
|
-
// packages/mcp/src/net/site-basic-auth.ts
|
|
2
|
-
/**
|
|
3
|
-
* Parse `YTB_MCP_SITE_BASIC_AUTH` ('user:pass') into URL **userinfo** that is
|
|
4
|
-
* injected into the upstream request URL (`https://user:pass@host/…`) on BOTH
|
|
5
|
-
* transports (fat-mode {@link RestClient} base URL and proxy-mode endpoint URL).
|
|
6
|
-
*
|
|
7
|
-
* Why this exists (U3 — Glöckle post-cert QA blocker): a site fronted by a pure
|
|
8
|
-
* HTTP **Basic-Auth realm** (e.g. `qa.gloeckle.de`) requires
|
|
9
|
-
* `Authorization: Basic …`. But the plugin Bearer already owns the single
|
|
10
|
-
* `Authorization` header on every outbound request, and `YTB_MCP_EXTRA_HEADERS`
|
|
11
|
-
* HARD-FORBIDS an `Authorization` key (see {@link parseExtraHeaders}) — so Basic
|
|
12
|
-
* and the Bearer collide on the one header and the site is unreachable.
|
|
13
|
-
*
|
|
14
|
-
* The fix routes the site-level Basic credentials on a **separate transport**:
|
|
15
|
-
* URL userinfo. Userinfo and the `Authorization` header are independent — undici
|
|
16
|
-
* / fetch turn `https://user:pass@host` into an `Authorization: Basic …` toward
|
|
17
|
-
* the **gateway/realm**, while we keep emitting `Authorization: Bearer …` toward
|
|
18
|
-
* the **plugin** behind it. The Bearer is never touched; the realm and the
|
|
19
|
-
* plugin each get the credential they expect.
|
|
20
|
-
*
|
|
21
|
-
* ── Accepted format ─────────────────────────────────────────────────────────
|
|
22
|
-
* `user:pass` — split on the FIRST colon (passwords may contain colons).
|
|
23
|
-
* - The username MUST be non-empty.
|
|
24
|
-
* - The password MAY be empty (some realms use a user-only token).
|
|
25
|
-
* Both halves are percent-encoded for userinfo via the WHATWG URL encoder, so
|
|
26
|
-
* reserved chars (`@`, `/`, `:`, space, …) survive into a valid URL.
|
|
27
|
-
*
|
|
28
|
-
* ── Security invariants ─────────────────────────────────────────────────────
|
|
29
|
-
* - The credential value is **NEVER** echoed in a warning or logged. Malformed
|
|
30
|
-
* input yields a generic "missing colon / empty username" warning only.
|
|
31
|
-
* - This channel NEVER touches the `Authorization` header — it rides URL
|
|
32
|
-
* userinfo exclusively, so the Bearer always wins (orthogonal transports).
|
|
33
|
-
*
|
|
34
|
-
* Pure + deterministic. `warnings` collects non-fatal issues; the caller (the
|
|
35
|
-
* server boot path) surfaces them once to stderr.
|
|
36
|
-
*
|
|
37
|
-
* @license MIT
|
|
38
|
-
*/
|
|
39
|
-
/** Canonical env-var name for the site-level HTTP Basic-Auth feature. */
|
|
40
1
|
export const ENV_SITE_BASIC_AUTH = 'YTB_MCP_SITE_BASIC_AUTH';
|
|
41
|
-
/**
|
|
42
|
-
* Encode a single userinfo component (username or password) exactly as the
|
|
43
|
-
* WHATWG URL serializer would. Using the URL setter (rather than
|
|
44
|
-
* `encodeURIComponent`) guarantees the result is byte-for-byte what lands on a
|
|
45
|
-
* real request URL, and is idempotent if the value is already encoded.
|
|
46
|
-
*/
|
|
47
|
-
function encodeUserinfoComponent(part, value) {
|
|
48
|
-
const u = new URL('https://x.invalid/');
|
|
49
|
-
if (part === 'username') {
|
|
50
|
-
u.username = value;
|
|
51
|
-
return u.username;
|
|
52
|
-
}
|
|
53
|
-
// A password-only set still needs a (placeholder) username for the URL to be
|
|
54
|
-
// valid; read back ONLY the password component.
|
|
55
|
-
u.username = 'x';
|
|
56
|
-
u.password = value;
|
|
57
|
-
return u.password;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Parse `YTB_MCP_SITE_BASIC_AUTH` from `env` (default `process.env`). Returns
|
|
61
|
-
* `{ userinfo: null, warnings: [] }` when unset/blank, and a generic warning
|
|
62
|
-
* (never containing the secret) when the value is malformed.
|
|
63
|
-
*/
|
|
64
2
|
export function parseSiteBasicAuth(env = process.env) {
|
|
65
3
|
const raw = (env[ENV_SITE_BASIC_AUTH] ?? '').trim();
|
|
66
4
|
if (raw === '') {
|
|
67
|
-
return {
|
|
5
|
+
return { header: null, warnings: [] };
|
|
68
6
|
}
|
|
69
7
|
const idx = raw.indexOf(':');
|
|
70
8
|
if (idx < 0) {
|
|
71
|
-
// Deliberately do NOT echo `raw` — it IS the credential.
|
|
72
9
|
return {
|
|
73
|
-
|
|
10
|
+
header: null,
|
|
74
11
|
warnings: [
|
|
75
12
|
`${ENV_SITE_BASIC_AUTH}: ignored — expected "user:pass" (a ":" separating username from password). The credential value is not shown.`,
|
|
76
13
|
],
|
|
@@ -80,39 +17,13 @@ export function parseSiteBasicAuth(env = process.env) {
|
|
|
80
17
|
const password = raw.slice(idx + 1);
|
|
81
18
|
if (user === '') {
|
|
82
19
|
return {
|
|
83
|
-
|
|
20
|
+
header: null,
|
|
84
21
|
warnings: [
|
|
85
22
|
`${ENV_SITE_BASIC_AUTH}: ignored — the username (before ":") is empty. Expected "user:pass". The credential value is not shown.`,
|
|
86
23
|
],
|
|
87
24
|
};
|
|
88
25
|
}
|
|
89
|
-
const
|
|
90
|
-
return {
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Splice `userinfo` (a percent-encoded `user:pass`) into `url`, returning the
|
|
94
|
-
* resulting href. When `userinfo` is `null`, the URL is returned unchanged
|
|
95
|
-
* (string form). Any pre-existing userinfo on the URL is overwritten.
|
|
96
|
-
*
|
|
97
|
-
* This is the ONLY mutation the site-Basic channel performs — it never adds or
|
|
98
|
-
* alters a header, so the Bearer in `Authorization` is untouched.
|
|
99
|
-
*/
|
|
100
|
-
export function applyUserinfoToUrl(url, userinfo) {
|
|
101
|
-
const parsed = url instanceof URL ? new URL(url.href) : new URL(url);
|
|
102
|
-
if (userinfo === null) {
|
|
103
|
-
return parsed.href;
|
|
104
|
-
}
|
|
105
|
-
const sep = userinfo.indexOf(':');
|
|
106
|
-
if (sep < 0) {
|
|
107
|
-
// Defensive — parseSiteBasicAuth always produces a colon; a caller that
|
|
108
|
-
// hand-builds a userinfo without one gets username-only behaviour.
|
|
109
|
-
parsed.username = userinfo;
|
|
110
|
-
parsed.password = '';
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
parsed.username = userinfo.slice(0, sep);
|
|
114
|
-
parsed.password = userinfo.slice(sep + 1);
|
|
115
|
-
}
|
|
116
|
-
return parsed.href;
|
|
26
|
+
const header = `Basic ${Buffer.from(`${user}:${password}`, 'utf-8').toString('base64')}`;
|
|
27
|
+
return { header, warnings: [] };
|
|
117
28
|
}
|
|
118
29
|
//# sourceMappingURL=site-basic-auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-basic-auth.js","sourceRoot":"","sources":["../../src/net/site-basic-auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"site-basic-auth.js","sourceRoot":"","sources":["../../src/net/site-basic-auth.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AAiB7D,MAAM,UAAU,kBAAkB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACnE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QAEV,OAAO;YACH,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE;gBACN,GAAG,mBAAmB,gHAAgH;aACzI;SACJ,CAAC;IACN,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QACd,OAAO;YACH,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE;gBACN,GAAG,mBAAmB,0GAA0G;aACnI;SACJ,CAAC;IACN,CAAC;IAGD,MAAM,MAAM,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IACzF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-version.d.ts","sourceRoot":"","sources":["../src/package-version.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,eAAe,QAAuB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, resolve } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
function readPackageVersion() {
|
|
5
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
6
|
+
const pkgPath = resolve(here, '..', 'package.json');
|
|
7
|
+
const raw = readFileSync(pkgPath, 'utf-8');
|
|
8
|
+
const parsed = JSON.parse(raw);
|
|
9
|
+
if (typeof parsed.version !== 'string' || parsed.version.length === 0) {
|
|
10
|
+
throw new Error(`yt-builder-mcp: package.json at ${pkgPath} is missing a string "version" field`);
|
|
11
|
+
}
|
|
12
|
+
return parsed.version;
|
|
13
|
+
}
|
|
14
|
+
export const PACKAGE_VERSION = readPackageVersion();
|
|
15
|
+
//# sourceMappingURL=package-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-version.js","sourceRoot":"","sources":["../src/package-version.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,SAAS,kBAAkB;IACvB,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC;IACxD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CACX,mCAAmC,OAAO,sCAAsC,CACnF,CAAC;IACN,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;AAC1B,CAAC;AAGD,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,64 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime platform detection — F-Platform-Detect-Probe (P0 customer fix).
|
|
3
|
-
*
|
|
4
|
-
* The static URL-shape heuristic in `detectPlatformFromUrl()` only works
|
|
5
|
-
* when the user-supplied base URL already carries `/wp-json/` or
|
|
6
|
-
* `/api/index.php/` in its path. That is RARELY the case in practice —
|
|
7
|
-
* the MCPB/manifest tells the user to enter the **site origin** (or a
|
|
8
|
-
* subfolder install like `https://dev.example.com/joomla`), neither of
|
|
9
|
-
* which contains those markers. The heuristic then silently falls back
|
|
10
|
-
* to the WordPress default and the Joomla customer experiences a
|
|
11
|
-
* 24/24 FAIL until they manually set `YTB_MCP_PLATFORM=joomla`.
|
|
12
|
-
*
|
|
13
|
-
* This module adds a *runtime probe*: lightweight unauthenticated GETs
|
|
14
|
-
* against both platforms' `/health` endpoints. Whichever returns a
|
|
15
|
-
* yt-builder-mcp-shaped response (a JSON body carrying `plugin_version`)
|
|
16
|
-
* wins. Joomla is probed first because the negative case (probe fails)
|
|
17
|
-
* is the long-tail and the positive case (probe succeeds) returns fast
|
|
18
|
-
* — letting the more common WordPress install just fall through to the
|
|
19
|
-
* second probe without paying for a wasted full timeout.
|
|
20
|
-
*
|
|
21
|
-
* The probe is fire-and-forget safe:
|
|
22
|
-
* - 3 s `AbortSignal.timeout` per request (so a totally broken host
|
|
23
|
-
* blocks ~6 s worst case, not the request's full 15 s default).
|
|
24
|
-
* - Non-200 responses are ignored (Joomla on a WP-only install
|
|
25
|
-
* answers 404; that's fine).
|
|
26
|
-
* - Non-JSON / wrong-shape 200 responses are ignored (a WP frontend
|
|
27
|
-
* without the plugin renders the homepage HTML, which `JSON.parse`
|
|
28
|
-
* refuses — handled).
|
|
29
|
-
* - Any thrown error (DNS, TLS, abort) is swallowed → try next.
|
|
30
|
-
*
|
|
31
|
-
* The function returns `null` when BOTH probes fail; the caller then
|
|
32
|
-
* falls back to the URL-shape heuristic or the wordpress default. We do
|
|
33
|
-
* NOT throw, because a missing-plugin or wrong-URL diagnosis belongs to
|
|
34
|
-
* the first real authenticated request — not to silent boot-time probing.
|
|
35
|
-
*
|
|
36
|
-
* @license MIT
|
|
37
|
-
*/
|
|
38
1
|
import { type PlatformKind } from './index.js';
|
|
39
|
-
/**
|
|
40
|
-
* Minimal fetch type so callers (and tests) can inject a stub without
|
|
41
|
-
* pulling DOM types. Matches the global `fetch` contract we actually use.
|
|
42
|
-
*/
|
|
43
2
|
export type ProbeFetch = (input: string, init?: {
|
|
44
3
|
signal?: AbortSignal;
|
|
45
4
|
}) => Promise<Response>;
|
|
46
5
|
export interface DetectPlatformAtRuntimeOptions {
|
|
47
|
-
/** Override the per-probe timeout (ms). Default 3000. */
|
|
48
6
|
readonly timeoutMs?: number;
|
|
49
|
-
/** Injectable fetch (tests). Defaults to the global `fetch`. */
|
|
50
7
|
readonly fetchImpl?: ProbeFetch;
|
|
51
8
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Probe both platforms' health endpoints and return the first kind that
|
|
54
|
-
* answers with a yt-builder-mcp-shaped JSON payload. Returns `null`
|
|
55
|
-
* when neither responds usefully (so the caller can fall through to the
|
|
56
|
-
* URL-shape heuristic / default).
|
|
57
|
-
*
|
|
58
|
-
* NB: `baseUrl` is taken verbatim except for trimming trailing slashes.
|
|
59
|
-
* If `baseUrl` itself carries a path component (e.g. subfolder install
|
|
60
|
-
* `https://dev.example.com/joomla`) we preserve it — that path is where
|
|
61
|
-
* Joomla's `/api/index.php/...` is rooted.
|
|
62
|
-
*/
|
|
63
9
|
export declare function detectPlatformAtRuntime(baseUrl: string, options?: DetectPlatformAtRuntimeOptions): Promise<PlatformKind | null>;
|
|
64
10
|
//# sourceMappingURL=detect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/platform/detect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/platform/detect.ts"],"names":[],"mappings":"AAsCA,OAAO,EAGH,KAAK,YAAY,EACpB,MAAM,YAAY,CAAC;AASpB,MAAM,MAAM,UAAU,GAAG,CACrB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KAC9B,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,MAAM,WAAW,8BAA8B;IAE3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;CACnC;AAwBD,wBAAsB,uBAAuB,CACzC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,8BAAmC,GAC7C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgB9B"}
|
package/dist/platform/detect.js
CHANGED
|
@@ -1,59 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime platform detection — F-Platform-Detect-Probe (P0 customer fix).
|
|
3
|
-
*
|
|
4
|
-
* The static URL-shape heuristic in `detectPlatformFromUrl()` only works
|
|
5
|
-
* when the user-supplied base URL already carries `/wp-json/` or
|
|
6
|
-
* `/api/index.php/` in its path. That is RARELY the case in practice —
|
|
7
|
-
* the MCPB/manifest tells the user to enter the **site origin** (or a
|
|
8
|
-
* subfolder install like `https://dev.example.com/joomla`), neither of
|
|
9
|
-
* which contains those markers. The heuristic then silently falls back
|
|
10
|
-
* to the WordPress default and the Joomla customer experiences a
|
|
11
|
-
* 24/24 FAIL until they manually set `YTB_MCP_PLATFORM=joomla`.
|
|
12
|
-
*
|
|
13
|
-
* This module adds a *runtime probe*: lightweight unauthenticated GETs
|
|
14
|
-
* against both platforms' `/health` endpoints. Whichever returns a
|
|
15
|
-
* yt-builder-mcp-shaped response (a JSON body carrying `plugin_version`)
|
|
16
|
-
* wins. Joomla is probed first because the negative case (probe fails)
|
|
17
|
-
* is the long-tail and the positive case (probe succeeds) returns fast
|
|
18
|
-
* — letting the more common WordPress install just fall through to the
|
|
19
|
-
* second probe without paying for a wasted full timeout.
|
|
20
|
-
*
|
|
21
|
-
* The probe is fire-and-forget safe:
|
|
22
|
-
* - 3 s `AbortSignal.timeout` per request (so a totally broken host
|
|
23
|
-
* blocks ~6 s worst case, not the request's full 15 s default).
|
|
24
|
-
* - Non-200 responses are ignored (Joomla on a WP-only install
|
|
25
|
-
* answers 404; that's fine).
|
|
26
|
-
* - Non-JSON / wrong-shape 200 responses are ignored (a WP frontend
|
|
27
|
-
* without the plugin renders the homepage HTML, which `JSON.parse`
|
|
28
|
-
* refuses — handled).
|
|
29
|
-
* - Any thrown error (DNS, TLS, abort) is swallowed → try next.
|
|
30
|
-
*
|
|
31
|
-
* The function returns `null` when BOTH probes fail; the caller then
|
|
32
|
-
* falls back to the URL-shape heuristic or the wordpress default. We do
|
|
33
|
-
* NOT throw, because a missing-plugin or wrong-URL diagnosis belongs to
|
|
34
|
-
* the first real authenticated request — not to silent boot-time probing.
|
|
35
|
-
*
|
|
36
|
-
* @license MIT
|
|
37
|
-
*/
|
|
38
1
|
import { JOOMLA_REST_NAMESPACE_PATH, WORDPRESS_REST_NAMESPACE_PATH, } from './index.js';
|
|
39
|
-
/** Per-probe HTTP timeout. Keep tight — boot-time UX is on the line. */
|
|
40
2
|
const PROBE_TIMEOUT_MS = 3_000;
|
|
41
3
|
const PROBE_CANDIDATES = [
|
|
42
|
-
// Joomla first — see module header rationale.
|
|
43
4
|
{ kind: 'joomla', path: `${JOOMLA_REST_NAMESPACE_PATH}/health` },
|
|
44
5
|
{ kind: 'wordpress', path: `${WORDPRESS_REST_NAMESPACE_PATH}/health` },
|
|
45
6
|
];
|
|
46
|
-
/**
|
|
47
|
-
* Probe both platforms' health endpoints and return the first kind that
|
|
48
|
-
* answers with a yt-builder-mcp-shaped JSON payload. Returns `null`
|
|
49
|
-
* when neither responds usefully (so the caller can fall through to the
|
|
50
|
-
* URL-shape heuristic / default).
|
|
51
|
-
*
|
|
52
|
-
* NB: `baseUrl` is taken verbatim except for trimming trailing slashes.
|
|
53
|
-
* If `baseUrl` itself carries a path component (e.g. subfolder install
|
|
54
|
-
* `https://dev.example.com/joomla`) we preserve it — that path is where
|
|
55
|
-
* Joomla's `/api/index.php/...` is rooted.
|
|
56
|
-
*/
|
|
57
7
|
export async function detectPlatformAtRuntime(baseUrl, options = {}) {
|
|
58
8
|
const timeoutMs = options.timeoutMs ?? PROBE_TIMEOUT_MS;
|
|
59
9
|
const fetchImpl = options.fetchImpl ?? globalThis.fetch;
|
|
@@ -73,8 +23,6 @@ async function probeOne(url, timeoutMs, fetchImpl) {
|
|
|
73
23
|
const r = await fetchImpl(url, { signal });
|
|
74
24
|
if (!r.ok)
|
|
75
25
|
return false;
|
|
76
|
-
// Some hosts answer JSON with `text/html` Content-Type; don't
|
|
77
|
-
// rely on the header. Parse defensively.
|
|
78
26
|
const text = await r.text();
|
|
79
27
|
let body;
|
|
80
28
|
try {
|
|
@@ -89,7 +37,6 @@ async function probeOne(url, timeoutMs, fetchImpl) {
|
|
|
89
37
|
return false;
|
|
90
38
|
}
|
|
91
39
|
}
|
|
92
|
-
/** Recognises a yt-builder-mcp `/health` response. */
|
|
93
40
|
function isYtbHealthShape(body) {
|
|
94
41
|
return (typeof body === 'object'
|
|
95
42
|
&& body !== null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/platform/detect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/platform/detect.ts"],"names":[],"mappings":"AAsCA,OAAO,EACH,0BAA0B,EAC1B,6BAA6B,GAEhC,MAAM,YAAY,CAAC;AAGpB,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAuB/B,MAAM,gBAAgB,GAA8B;IAEhD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,0BAA0B,SAAS,EAAE;IAChE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,6BAA6B,SAAS,EAAE;CACzE,CAAC;AAaF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CACzC,OAAe,EACf,UAA0C,EAAE;IAE5C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC;IACxD,MAAM,SAAS,GACX,OAAO,CAAC,SAAS,IAAK,UAAU,CAAC,KAAoB,CAAC;IAC1D,IAAI,OAAO,SAAS,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAEjD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,gBAAgB,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAC1B,OAAO,GAAG,IAAI,EACd,SAAS,EACT,SAAS,CACZ,CAAC;QACF,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,QAAQ,CACnB,GAAW,EACX,SAAiB,EACjB,SAAqB;IAErB,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAGxB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAGD,SAAS,gBAAgB,CAAC,IAAa;IACnC,OAAO,CACH,OAAO,IAAI,KAAK,QAAQ;WACrB,IAAI,KAAK,IAAI;WACb,gBAAgB,IAAI,IAAI,CAC9B,CAAC;AACN,CAAC"}
|
package/dist/platform/index.d.ts
CHANGED
|
@@ -1,45 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Platform abstraction — Wave G.0.
|
|
3
|
-
*
|
|
4
|
-
* A `Platform` is the seam between the MCP server and a host CMS. Today
|
|
5
|
-
* the only concrete impl is `WordPressPlatform`; `joomla` is reserved
|
|
6
|
-
* as a typed seam-marker so Wave G.4+ can land Joomla without rippling
|
|
7
|
-
* through every call site.
|
|
8
|
-
*
|
|
9
|
-
* Why an interface instead of a tagged union?
|
|
10
|
-
* - Each platform owns its REST-namespace path verbatim (WP uses
|
|
11
|
-
* `/wp-json/<ns>`, Joomla will use `/index.php?option=com_ajax&…`).
|
|
12
|
-
* - Adding a platform = implement the interface + add a `PlatformKind`
|
|
13
|
-
* member. No switch statements to update.
|
|
14
|
-
*
|
|
15
|
-
* The `RestClient` accepts EITHER a `Platform` OR the legacy
|
|
16
|
-
* `{baseUrl}` form (which internally builds a `WordPressPlatform`),
|
|
17
|
-
* so existing callers keep working unchanged.
|
|
18
|
-
*
|
|
19
|
-
* @license MIT
|
|
20
|
-
*/
|
|
21
|
-
/** Tagged union of supported host platforms. */
|
|
22
1
|
export type PlatformKind = 'wordpress' | 'joomla';
|
|
23
|
-
/**
|
|
24
|
-
* A `Platform` describes WHERE and HOW the MCP server reaches the
|
|
25
|
-
* REST surface of the host CMS.
|
|
26
|
-
*/
|
|
27
2
|
export interface Platform {
|
|
28
|
-
/** Discriminator for runtime checks. */
|
|
29
3
|
readonly kind: PlatformKind;
|
|
30
|
-
/** Origin (scheme + host + optional port). No trailing-slash normalisation here. */
|
|
31
4
|
readonly baseUrl: string;
|
|
32
|
-
/** Path prefix appended to baseUrl to form the REST root (must start with `/`). */
|
|
33
5
|
readonly restNamespacePath: string;
|
|
34
6
|
}
|
|
35
|
-
/** Canonical WordPress REST-namespace path for this plugin. */
|
|
36
7
|
export declare const WORDPRESS_REST_NAMESPACE_PATH = "/wp-json/yt-builder-mcp/v1";
|
|
37
|
-
/**
|
|
38
|
-
* WordPress platform implementation.
|
|
39
|
-
*
|
|
40
|
-
* `restNamespacePath` is fixed to the plugin's namespace; the caller
|
|
41
|
-
* supplies only the site origin.
|
|
42
|
-
*/
|
|
43
8
|
export declare class WordPressPlatform implements Platform {
|
|
44
9
|
readonly kind: "wordpress";
|
|
45
10
|
readonly baseUrl: string;
|
|
@@ -47,73 +12,8 @@ export declare class WordPressPlatform implements Platform {
|
|
|
47
12
|
constructor(baseUrl: string);
|
|
48
13
|
}
|
|
49
14
|
export { JoomlaPlatform, JOOMLA_REST_NAMESPACE_PATH } from './joomla.js';
|
|
50
|
-
/**
|
|
51
|
-
* Detect which {@link Platform} a base URL targets based on the URL
|
|
52
|
-
* shape alone (no network call).
|
|
53
|
-
*
|
|
54
|
-
* - pathname starts with `/wp-json/` → `'wordpress'`
|
|
55
|
-
* - pathname starts with `/api/index.php/` → `'joomla'`
|
|
56
|
-
* - otherwise → `null` (ambiguous — caller may probe `/identity`)
|
|
57
|
-
*
|
|
58
|
-
* Round-6 A1 polish: detection switched from `String.includes` to a
|
|
59
|
-
* proper `URL`-parse + `pathname.startsWith` so query-string payloads
|
|
60
|
-
* cannot cause mis-detection (e.g. a Joomla site URL like
|
|
61
|
-
* `https://example.com/?redirect=/wp-json/foo` no longer pretends to
|
|
62
|
-
* be WordPress). Malformed URLs that the `URL` constructor rejects
|
|
63
|
-
* gracefully fall back to the legacy substring scan so callers that
|
|
64
|
-
* accidentally pass a host-only string (e.g. `example.com`) keep
|
|
65
|
-
* working — they would have already failed the actual network call
|
|
66
|
-
* with a clearer error before this function was reached in practice.
|
|
67
|
-
*
|
|
68
|
-
* Cookbook §3.7.1 — the runtime tie-breaker (when this returns `null`)
|
|
69
|
-
* is the `/identity` endpoint, which returns
|
|
70
|
-
* `{ product: 'yt-builder-mcp', platform: 'wordpress'|'joomla', ... }`
|
|
71
|
-
* on both platforms.
|
|
72
|
-
*/
|
|
73
15
|
export declare function detectPlatformFromUrl(url: string): PlatformKind | null;
|
|
74
|
-
/**
|
|
75
|
-
* Construct the right {@link Platform} for a base URL.
|
|
76
|
-
*
|
|
77
|
-
* When the URL shape gives an unambiguous hint via
|
|
78
|
-
* {@link detectPlatformFromUrl}, that wins. Otherwise the caller can
|
|
79
|
-
* pass an explicit `hint` (e.g. from a config flag) or fall back to
|
|
80
|
-
* the default (`'wordpress'` for back-compat — Joomla support landed
|
|
81
|
-
* in Wave 7, so existing WordPress installs never need to flag).
|
|
82
|
-
*
|
|
83
|
-
* Synchronous variant — kept for back-compat with callers that cannot
|
|
84
|
-
* (or do not need to) probe over the network. Prefer
|
|
85
|
-
* {@link platformForUrlAsync} when running in the server boot path:
|
|
86
|
-
* it adds a runtime probe that disambiguates origin-only / subfolder
|
|
87
|
-
* URLs (e.g. `https://example.com/joomla`) where the URL shape alone
|
|
88
|
-
* is silent.
|
|
89
|
-
*/
|
|
90
16
|
export declare function platformForUrl(baseUrl: string, hint?: PlatformKind): Platform;
|
|
91
|
-
/**
|
|
92
|
-
* Async variant of {@link platformForUrl} that adds a runtime probe
|
|
93
|
-
* step for URLs the URL-shape heuristic cannot disambiguate.
|
|
94
|
-
*
|
|
95
|
-
* Resolution order (first match wins):
|
|
96
|
-
* 1. Explicit `hint` from `YTB_MCP_PLATFORM` env var → no probe.
|
|
97
|
-
* 2. URL-shape via {@link detectPlatformFromUrl} (clear `/wp-json/`
|
|
98
|
-
* or `/api/index.php/` marker) → no probe.
|
|
99
|
-
* 3. Runtime probe via `detectPlatformAtRuntime` (the F-Platform-
|
|
100
|
-
* Detect-Probe fix — handles subfolder installs like
|
|
101
|
-
* `https://dev.example.com/joomla` where steps 1+2 return null).
|
|
102
|
-
* 4. Final fallback: `'wordpress'` (back-compat).
|
|
103
|
-
*
|
|
104
|
-
* The probe step is what unblocks origin-only Joomla customers without
|
|
105
|
-
* forcing them to manually set `YTB_MCP_PLATFORM=joomla` — the MCPB
|
|
106
|
-
* default of `auto` finally lives up to its name.
|
|
107
|
-
*
|
|
108
|
-
* If both probes fail (server unreachable, plugin not installed, etc.)
|
|
109
|
-
* we fall back to the wordpress default and emit a single stderr note
|
|
110
|
-
* so the customer at least sees *why* the next authenticated call may
|
|
111
|
-
* 404; the real diagnosis still belongs to the first authenticated
|
|
112
|
-
* tool invocation.
|
|
113
|
-
*
|
|
114
|
-
* @param opts.probe Optional probe override (tests / DI).
|
|
115
|
-
* @param opts.logger Optional stderr writer (defaults to `process.stderr.write`).
|
|
116
|
-
*/
|
|
117
17
|
export declare function platformForUrlAsync(baseUrl: string, hint?: PlatformKind, opts?: {
|
|
118
18
|
readonly probe?: (url: string) => Promise<PlatformKind | null>;
|
|
119
19
|
readonly logger?: (msg: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;AAMlD,MAAM,WAAW,QAAQ;IAErB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACtC;AAGD,eAAO,MAAM,6BAA6B,+BAA+B,CAAC;AAQ1E,qBAAa,iBAAkB,YAAW,QAAQ;IAC9C,SAAgB,IAAI,EAAG,WAAW,CAAU;IAC5C,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,iBAAiB,EAAE,MAAM,CAAC;gBAE9B,OAAO,EAAE,MAAM;CAI9B;AAOD,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAyBzE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAetE;AAkBD,wBAAgB,cAAc,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,YAAY,GACpB,QAAQ,CAMV;AA4BD,wBAAsB,mBAAmB,CACrC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,YAAY,EACnB,IAAI,GAAE;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,CACb,GAAG,EAAE,MAAM,KACV,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,GACP,OAAO,CAAC,QAAQ,CAAC,CA0CnB"}
|