@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
package/dist/setup-wizard.js
CHANGED
|
@@ -1,75 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* live in `setup-wizard-defaults.ts`.
|
|
12
|
-
* - The CLI dispatcher + main-guard live in `setup-cli.ts`.
|
|
13
|
-
*
|
|
14
|
-
* @license MIT
|
|
15
|
-
*/
|
|
16
|
-
import { cancel, log, note, outro, spinner } from '@clack/prompts';
|
|
17
|
-
import { supportsSystemCa } from './diagnostics/ca-trust.js';
|
|
18
|
-
import { hasProxyConfigured } from './net/proxy-dispatcher.js';
|
|
19
|
-
import { JoomlaPlatform, WordPressPlatform, } from './platform/index.js';
|
|
20
|
-
import { SERVER_NAME, SERVER_VERSION } from './server.js';
|
|
21
|
-
import { buildCaEnv } from './setup-ca-env.js';
|
|
22
|
-
import { buildNpxSpec } from './setup-npx-spec.js';
|
|
23
|
-
import { DEFAULT_WIZARD_DEPS, rollbackWrites, } from './setup-wizard-defaults.js';
|
|
24
|
-
// Re-export the public surface so `import { runWizard, WizardDeps } from
|
|
25
|
-
// './setup-wizard.js'` continues to work without touching the split files.
|
|
1
|
+
import { cancel, log, outro } from '@clack/prompts';
|
|
2
|
+
import { JoomlaPlatform, WordPressPlatform } from './platform/index.js';
|
|
3
|
+
import { SERVER_VERSION } from './server.js';
|
|
4
|
+
import { attemptCaRecovery } from './setup/ca-recovery.js';
|
|
5
|
+
import { RegistryWriteFailure, REGISTRY_SITE_MISSING_REMEDY, } from './setup/registry-remedy.js';
|
|
6
|
+
import { resolveHostPlatform } from './setup/host-platform.js';
|
|
7
|
+
import { installClientConfigs } from './setup/install-configs.js';
|
|
8
|
+
import { announcePhase, runStep } from './setup/phases.js';
|
|
9
|
+
import { resolveSiteId } from './sites/schema.js';
|
|
10
|
+
import { DEFAULT_WIZARD_DEPS, rollbackWrites } from './setup-wizard-defaults.js';
|
|
26
11
|
export { DEFAULT_WIZARD_DEPS, majorMinor } from './setup-wizard-defaults.js';
|
|
27
|
-
// 1.0.2 Wave-R Part 2: renamed `yootheme-builder` → `yt-builder-mcp`
|
|
28
|
-
// to match the package slug + REST namespace + GitHub repo + skill
|
|
29
|
-
// folder. Pre-1.0.1 installs (alpha-tester only, per Thomas 2026-05-23)
|
|
30
|
-
// would land their server under the old key; no migration logic is
|
|
31
|
-
// shipped because there were no production installs to migrate. If
|
|
32
|
-
// someone re-runs setup they'll get a fresh `yt-builder-mcp` entry +
|
|
33
|
-
// the legacy `yootheme-builder` entry stays dormant (harmless, points
|
|
34
|
-
// at the same npm package).
|
|
35
|
-
const SERVER_KEY = 'yt-builder-mcp';
|
|
36
|
-
/**
|
|
37
|
-
* G-E #6 — the honest outcome message when the operator chose the OS trust store
|
|
38
|
-
* (`--use-system-ca`). Node only consults that store when (re)started with the
|
|
39
|
-
* flag, which the WRITTEN config does but the setup process did NOT — so we can
|
|
40
|
-
* never validate it in-process. We say so plainly instead of reporting a false ❌.
|
|
41
|
-
*/
|
|
42
|
-
const SYSTEM_CA_DEFERRED_MESSAGE = '✅ Configured to use the OS trust store (--use-system-ca) — this takes effect when ' +
|
|
43
|
-
"your AI client next launches the server. The current setup process can't validate it in-process.";
|
|
44
|
-
/**
|
|
45
|
-
* Honest outcome when the health probe failed with an opaque TIMEOUT and we
|
|
46
|
-
* auto-attempted the OS-trust-store recovery (a TLS-inspecting corporate proxy
|
|
47
|
-
* whose CA chain can't be built hangs into a 30s timeout rather than a clean
|
|
48
|
-
* cert error). Like {@link SYSTEM_CA_DEFERRED_MESSAGE}, system mode can't be
|
|
49
|
-
* validated in-process — but a timeout is ALSO ambiguous (it can be a genuine
|
|
50
|
-
* proxy/VPN reachability problem), so we keep the proxy/VPN guidance visible:
|
|
51
|
-
* if the next launch still fails, the cause was reachability, not the CA.
|
|
52
|
-
*/
|
|
53
|
-
const TIMEOUT_SYSTEM_CA_DEFERRED_MESSAGE = '✅ The connection timed out — a TLS-inspecting corporate proxy can hang the handshake this way, so the ' +
|
|
54
|
-
'server was configured to use the OS trust store (--use-system-ca), validated when your AI client next ' +
|
|
55
|
-
'launches the server. If it still fails after restart, the timeout was a reachability problem instead: ' +
|
|
56
|
-
'the site may be internal (VPN needed) or require a proxy (set HTTPS_PROXY). Never disables TLS verification.';
|
|
57
|
-
/**
|
|
58
|
-
* Run the interactive setup wizard. Returns a process exit-code so the
|
|
59
|
-
* outer dispatcher can `process.exit(rc)` cleanly.
|
|
60
|
-
*
|
|
61
|
-
* Exit codes:
|
|
62
|
-
* 0 — success (configs written, handshake OK)
|
|
63
|
-
* 1 — invalid input that prevents proceeding
|
|
64
|
-
* 2 — health probe failed and user declined to continue
|
|
65
|
-
* 3 — auth probe failed and user declined to continue
|
|
66
|
-
* 4 — write failed; configs rolled back
|
|
67
|
-
* 5 — handshake failed; configs rolled back
|
|
68
|
-
* 130 — user cancelled (matches the SIGINT convention)
|
|
69
|
-
*/
|
|
70
12
|
export async function runWizard(deps = DEFAULT_WIZARD_DEPS) {
|
|
71
13
|
const logFn = deps.log ?? ((line) => process.stderr.write(`${line}\n`));
|
|
72
|
-
// 1. Detect clients + collect answers.
|
|
73
14
|
const detected = deps.detectClients();
|
|
74
15
|
const answers = await deps.prompt({ detected });
|
|
75
16
|
if (answers === null)
|
|
@@ -78,216 +19,96 @@ export async function runWizard(deps = DEFAULT_WIZARD_DEPS) {
|
|
|
78
19
|
logFn('Both the WordPress URL and the Bearer key are required.');
|
|
79
20
|
return 1;
|
|
80
21
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
// the silent-WordPress class: an origin-only Joomla URL used to fall
|
|
85
|
-
// through to `/wp-json` at every probe and at runtime.
|
|
86
|
-
//
|
|
87
|
-
// Resolution order:
|
|
88
|
-
// 1. `--platform` flag (answers.platform) WINS — no probe.
|
|
89
|
-
// 2. `deps.resolvePlatform` (URL-shape → Joomla-first runtime probe)
|
|
90
|
-
// → a concrete kind, or `null` when it cannot decide.
|
|
91
|
-
// 3. On `null`: PROMPT (interactive) via `deps.promptPlatform`, else
|
|
92
|
-
// warn + fall back to WordPress (non-interactive back-compat).
|
|
93
|
-
// We never probe per-request afterwards — the resolved Platform is
|
|
94
|
-
// threaded into all probes below.
|
|
95
|
-
let resolvedKind;
|
|
96
|
-
if (answers.platform !== undefined) {
|
|
97
|
-
resolvedKind = answers.platform;
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
const detected = deps.resolvePlatform !== undefined
|
|
101
|
-
? await deps.resolvePlatform(answers.wpUrl)
|
|
102
|
-
: null;
|
|
103
|
-
if (detected !== null) {
|
|
104
|
-
resolvedKind = detected;
|
|
105
|
-
}
|
|
106
|
-
else if (deps.promptPlatform !== undefined) {
|
|
107
|
-
const picked = await deps.promptPlatform();
|
|
108
|
-
if (picked === null) {
|
|
109
|
-
cancel('Setup cancelled.');
|
|
110
|
-
return 130;
|
|
111
|
-
}
|
|
112
|
-
resolvedKind = picked;
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
resolvedKind = 'wordpress';
|
|
116
|
-
logFn(`Could not auto-detect the platform for ${answers.wpUrl} — defaulting to WordPress. `
|
|
117
|
-
+ 'Re-run with `--platform joomla` if this is a Joomla install.');
|
|
118
|
-
}
|
|
119
|
-
}
|
|
22
|
+
const resolvedKind = await resolveHostPlatform({ answers, deps, logFn });
|
|
23
|
+
if (resolvedKind === null)
|
|
24
|
+
return 130;
|
|
120
25
|
const resolvedPlatform = resolvedKind === 'joomla'
|
|
121
26
|
? new JoomlaPlatform(answers.wpUrl)
|
|
122
27
|
: new WordPressPlatform(answers.wpUrl);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const identity = await deps.probeIdentity(answers.wpUrl, resolvedPlatform);
|
|
131
|
-
if (identity.ok) {
|
|
132
|
-
const summary = identity.siteurl !== undefined
|
|
133
|
-
? `Plugin identified at ${identity.siteurl}.`
|
|
134
|
-
: 'Plugin identified.';
|
|
135
|
-
idSpinner.stop(summary);
|
|
136
|
-
if (identity.siteurl !== undefined && identity.siteurl !== answers.wpUrl) {
|
|
137
|
-
log.warn(`URL mismatch: you entered ${answers.wpUrl} but the plugin reports its canonical URL as ${identity.siteurl}. ` +
|
|
138
|
-
`Using the URL you entered — fix the mismatch if you get auth errors.`);
|
|
139
|
-
}
|
|
28
|
+
if (deps.saveResume !== undefined) {
|
|
29
|
+
try {
|
|
30
|
+
await deps.saveResume({
|
|
31
|
+
url: answers.wpUrl,
|
|
32
|
+
platform: resolvedKind,
|
|
33
|
+
clients: answers.selectedClients,
|
|
34
|
+
});
|
|
140
35
|
}
|
|
141
|
-
|
|
142
|
-
|
|
36
|
+
catch (e) {
|
|
37
|
+
logFn(`Could not save the setup resume file: ${e instanceof Error ? e.message : String(e)}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
announcePhase('Checking');
|
|
41
|
+
const probeIdentity = deps.probeIdentity;
|
|
42
|
+
if (probeIdentity !== undefined) {
|
|
43
|
+
const identity = await runStep({
|
|
44
|
+
running: 'Verifying plugin identity…',
|
|
45
|
+
run: async () => probeIdentity(answers.wpUrl, resolvedPlatform),
|
|
46
|
+
verdict: (r) => r.ok
|
|
47
|
+
? {
|
|
48
|
+
ok: true,
|
|
49
|
+
message: r.siteurl !== undefined
|
|
50
|
+
? `Plugin identified at ${r.siteurl}.`
|
|
51
|
+
: 'Plugin identified.',
|
|
52
|
+
}
|
|
53
|
+
: { ok: false, message: 'Identity probe failed.' },
|
|
54
|
+
});
|
|
55
|
+
if (!identity.ok) {
|
|
143
56
|
log.warn(`Identity probe: ${identity.error ?? 'unknown'} (continuing — older plugins lack this endpoint).`);
|
|
144
57
|
}
|
|
58
|
+
else if (identity.siteurl !== undefined && identity.siteurl !== answers.wpUrl) {
|
|
59
|
+
log.warn(`URL mismatch: you entered ${answers.wpUrl} but the plugin reports its canonical URL as ${identity.siteurl}. ` +
|
|
60
|
+
`Using the URL you entered — fix the mismatch if you get auth errors.`);
|
|
61
|
+
}
|
|
145
62
|
}
|
|
146
|
-
// The CA choice the wizard ends up writing into the env block. Seeded from
|
|
147
|
-
// any non-interactive `--ca` / `--ca=system` answer, then possibly set by
|
|
148
|
-
// the interactive CA prompt (G-D #6) when a probe hits a TLS-trust error.
|
|
149
63
|
let caChoice = {
|
|
150
64
|
...(answers.caCertPath !== undefined ? { caCertPath: answers.caCertPath } : {}),
|
|
151
65
|
...(answers.caMode !== undefined ? { caMode: answers.caMode } : {}),
|
|
152
66
|
};
|
|
153
67
|
const nodeVersion = deps.nodeVersion ?? process.version;
|
|
154
|
-
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
68
|
+
const now = deps.now ?? (() => performance.now());
|
|
69
|
+
const healthProbeStartedAt = now();
|
|
70
|
+
let health = await runStep({
|
|
71
|
+
running: 'Probing plugin health…',
|
|
72
|
+
run: async () => deps.probeHealth(answers.wpUrl, resolvedPlatform),
|
|
73
|
+
verdict: (r) => r.ok
|
|
74
|
+
? {
|
|
75
|
+
ok: true,
|
|
76
|
+
message: r.pluginVersion !== undefined
|
|
77
|
+
? `Plugin reachable (v${r.pluginVersion}).`
|
|
78
|
+
: 'Plugin reachable.',
|
|
79
|
+
}
|
|
80
|
+
: { ok: false, message: 'Plugin probe failed.' },
|
|
81
|
+
});
|
|
82
|
+
const healthProbeMs = now() - healthProbeStartedAt;
|
|
83
|
+
let timeoutMs;
|
|
84
|
+
if (healthProbeMs > 5000 && (health.ok || health.timeout === true)) {
|
|
85
|
+
const seconds = Math.round(healthProbeMs / 1000);
|
|
86
|
+
const message = health.ok
|
|
87
|
+
? `Site took ${seconds}s to answer. Raise the timeout to 30s? (default 15s)`
|
|
88
|
+
: `No answer within ${seconds}s. Raise the timeout to 30s? (default 15s)`;
|
|
89
|
+
const raise = await deps.confirmContinue(message);
|
|
90
|
+
if (raise)
|
|
91
|
+
timeoutMs = 30_000;
|
|
92
|
+
}
|
|
158
93
|
let auth;
|
|
159
|
-
// Set once the operator picked the OS trust store (--use-system-ca) and the
|
|
160
|
-
// post-CA re-probe failed: the OS store can't be validated in THIS process,
|
|
161
|
-
// so we defer validation to the next server launch instead of treating the
|
|
162
|
-
// (false-negative) failure as a reason to discard the correct config.
|
|
163
94
|
let systemCaDeferred = false;
|
|
164
|
-
if (health.ok) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
if (
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
const picked = await deps.promptCa({ systemCaSupported });
|
|
182
|
-
if (picked === null) {
|
|
183
|
-
cancel('Setup cancelled.');
|
|
184
|
-
return 130;
|
|
185
|
-
}
|
|
186
|
-
if (picked.choice !== 'skip') {
|
|
187
|
-
caChoice =
|
|
188
|
-
picked.choice === 'system'
|
|
189
|
-
? { caMode: 'system' }
|
|
190
|
-
: { caCertPath: picked.path };
|
|
191
|
-
// Re-probe with the CA applied at runtime. When no dedicated
|
|
192
|
-
// re-prober is wired, fall back to the ordinary probes (the
|
|
193
|
-
// choice is still recorded into the env block either way).
|
|
194
|
-
const reSpinner = spinner();
|
|
195
|
-
reSpinner.start('Re-checking the connection with the CA applied…');
|
|
196
|
-
if (deps.applyAndReProbe !== undefined) {
|
|
197
|
-
const re = await deps.applyAndReProbe({ wpUrl: answers.wpUrl, bearer: answers.bearer, choice: picked, platform: resolvedPlatform });
|
|
198
|
-
health = re.health;
|
|
199
|
-
auth = re.auth;
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
health = await deps.probeHealth(answers.wpUrl, resolvedPlatform);
|
|
203
|
-
auth = await deps.probeAuth(answers.wpUrl, answers.bearer, resolvedPlatform);
|
|
204
|
-
}
|
|
205
|
-
// G-E #6 honesty fix: the OS trust store is consulted ONLY when
|
|
206
|
-
// Node is (re)started with --use-system-ca — which the WRITTEN
|
|
207
|
-
// config does, but THIS setup process was not. So an in-process
|
|
208
|
-
// re-probe in system mode is a guaranteed false-negative: a ❌
|
|
209
|
-
// here would (on decline) discard the CORRECT config. Treat a
|
|
210
|
-
// system-mode re-probe failure as "configured, validates at next
|
|
211
|
-
// launch" — write the config and skip the generic/auth/handshake
|
|
212
|
-
// in-process checks (which would hit the same untrusted CA). File
|
|
213
|
-
// (.pem) mode DOES validate in-process (undici Agent trusts the
|
|
214
|
-
// CA), so it keeps the honest ✅/❌ verdict.
|
|
215
|
-
if (picked.choice === 'system' && !health.ok) {
|
|
216
|
-
systemCaDeferred = true;
|
|
217
|
-
reSpinner.stop('OS trust store configured (--use-system-ca).');
|
|
218
|
-
logFn(SYSTEM_CA_DEFERRED_MESSAGE);
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
reSpinner.stop(health.ok ? '✅ connected — CA trusted.' : `❌ still failing: ${health.error ?? 'unknown'}`);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
// Timeout → OS-trust-store auto-bake (Glöckle corporate-CA timeout gap).
|
|
226
|
-
// A TLS-inspecting corporate proxy whose root CA chain can't be built
|
|
227
|
-
// often hangs the handshake into an OPAQUE 30s timeout rather than a
|
|
228
|
-
// clean cert code — so `health.caTrust` is false and the CA prompt above
|
|
229
|
-
// never fires, leaving the operator to set NODE_OPTIONS=--use-system-ca
|
|
230
|
-
// by hand. When the probe failed with a TIMEOUT, this Node can read the
|
|
231
|
-
// OS trust store (Node ≥ 22.15), and NO CA was chosen yet, attempt the
|
|
232
|
-
// SAME system-CA recovery the caTrust branch does: bake caMode:'system'
|
|
233
|
-
// and RE-PROBE. `--use-system-ca` only ADDS the OS store (never disables
|
|
234
|
-
// TLS), so attempting it on a timeout is safe even if the timeout turns
|
|
235
|
-
// out to be a genuine proxy/VPN issue — the re-probe just fails again and
|
|
236
|
-
// the proxy/VPN guidance is still shown. Like the caTrust branch, system
|
|
237
|
-
// mode can't validate in-process, so a still-failing re-probe defers
|
|
238
|
-
// validation to next launch (the written config is correct) rather than
|
|
239
|
-
// discarding it; the ambiguity (CA vs reachability) is surfaced honestly.
|
|
240
|
-
const caChosenSoFar = caChoice.caCertPath !== undefined || caChoice.caMode !== undefined;
|
|
241
|
-
if (!health.ok && health.timeout === true && !caChosenSoFar && supportsSystemCa(nodeVersion)) {
|
|
242
|
-
log.warn(`The connection timed out — attempting the OS trust store (--use-system-ca) in case a corporate TLS-inspection proxy is hanging the TLS handshake: ${health.error ?? 'timeout'}`);
|
|
243
|
-
caChoice = { caMode: 'system' };
|
|
244
|
-
const reSpinner = spinner();
|
|
245
|
-
reSpinner.start('Re-checking the connection with --use-system-ca applied…');
|
|
246
|
-
if (deps.applyAndReProbe !== undefined) {
|
|
247
|
-
const re = await deps.applyAndReProbe({
|
|
248
|
-
wpUrl: answers.wpUrl,
|
|
249
|
-
bearer: answers.bearer,
|
|
250
|
-
choice: { choice: 'system' },
|
|
251
|
-
platform: resolvedPlatform,
|
|
252
|
-
});
|
|
253
|
-
health = re.health;
|
|
254
|
-
auth = re.auth;
|
|
255
|
-
}
|
|
256
|
-
else {
|
|
257
|
-
health = await deps.probeHealth(answers.wpUrl, resolvedPlatform);
|
|
258
|
-
auth = await deps.probeAuth(answers.wpUrl, answers.bearer, resolvedPlatform);
|
|
259
|
-
}
|
|
260
|
-
if (health.ok) {
|
|
261
|
-
reSpinner.stop('✅ connected — OS trust store resolved the timeout.');
|
|
262
|
-
}
|
|
263
|
-
else {
|
|
264
|
-
// System mode can't validate in-process (the OS store is only
|
|
265
|
-
// read when Node restarts WITH the flag). Defer validation to the
|
|
266
|
-
// next launch instead of discarding the (now correct) config —
|
|
267
|
-
// but keep the proxy/VPN guidance visible for the ambiguous case.
|
|
268
|
-
systemCaDeferred = true;
|
|
269
|
-
reSpinner.stop('OS trust store configured (--use-system-ca).');
|
|
270
|
-
logFn(TIMEOUT_SYSTEM_CA_DEFERRED_MESSAGE);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
else if (!health.ok && health.timeout === true && !caChosenSoFar && !supportsSystemCa(nodeVersion)) {
|
|
274
|
-
// Below the system-CA floor we cannot write a flag the target Node
|
|
275
|
-
// would reject. Warn to supply a .pem instead (the only CA option on
|
|
276
|
-
// an old Node), then fall through to the generic continue decision.
|
|
277
|
-
// Route through BOTH the clack UI and the logFn sink so the warning is
|
|
278
|
-
// capturable in non-TTY / test contexts (mirrors the P0.1 below-floor
|
|
279
|
-
// branch). Intentionally does NOT name the OS-trust-store flag (the
|
|
280
|
-
// whole point is that it's unavailable on this Node).
|
|
281
|
-
const warnPem = `The connection timed out and this Node (${nodeVersion}) is below 22.15, so the OS trust store cannot be read. ` +
|
|
282
|
-
'If a corporate TLS-inspection proxy is the cause, re-run setup with `--ca <path-to-corp-root-ca.pem>` ' +
|
|
283
|
-
'(export your corporate root CA to a .pem). Otherwise the site may need a VPN/proxy. Never disable TLS verification.';
|
|
284
|
-
log.warn(warnPem);
|
|
285
|
-
logFn(warnPem);
|
|
286
|
-
}
|
|
287
|
-
// If the connection is still down after the (optional) CA step, fall
|
|
288
|
-
// through to the generic continue-anyway decision — UNLESS system-CA was
|
|
289
|
-
// configured, where validation is deferred to next launch and the (false-
|
|
290
|
-
// negative) in-process failure must not discard the config.
|
|
95
|
+
if (!health.ok) {
|
|
96
|
+
const recovered = await attemptCaRecovery({
|
|
97
|
+
answers,
|
|
98
|
+
deps,
|
|
99
|
+
platform: resolvedPlatform,
|
|
100
|
+
nodeVersion,
|
|
101
|
+
caChoice,
|
|
102
|
+
health,
|
|
103
|
+
logFn,
|
|
104
|
+
});
|
|
105
|
+
if (recovered.cancelled === true)
|
|
106
|
+
return 130;
|
|
107
|
+
caChoice = recovered.caChoice;
|
|
108
|
+
health = recovered.health;
|
|
109
|
+
if (recovered.auth !== undefined)
|
|
110
|
+
auth = recovered.auth;
|
|
111
|
+
systemCaDeferred = recovered.systemCaDeferred;
|
|
291
112
|
if (!health.ok && !systemCaDeferred) {
|
|
292
113
|
log.error(`Could not reach the plugin: ${health.error ?? 'unknown'}`);
|
|
293
114
|
const cont = await deps.confirmContinue('Continue anyway and write the config? (You can fix this later.)');
|
|
@@ -297,20 +118,14 @@ export async function runWizard(deps = DEFAULT_WIZARD_DEPS) {
|
|
|
297
118
|
}
|
|
298
119
|
}
|
|
299
120
|
}
|
|
300
|
-
// 3. Auth probe (Bearer). Skip when the CA re-probe already produced an
|
|
301
|
-
// auth result (avoids a redundant round-trip on the corporate path), or
|
|
302
|
-
// when system-CA validation is deferred (an in-process auth probe would
|
|
303
|
-
// hit the same untrusted-CA false-negative and discard the config).
|
|
304
121
|
if (auth === undefined && !systemCaDeferred) {
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
authSpinner.stop('Bearer probe failed.');
|
|
313
|
-
}
|
|
122
|
+
auth = await runStep({
|
|
123
|
+
running: 'Verifying Bearer key…',
|
|
124
|
+
run: async () => deps.probeAuth(answers.wpUrl, answers.bearer, resolvedPlatform),
|
|
125
|
+
verdict: (r) => r.ok
|
|
126
|
+
? { ok: true, message: 'Bearer key accepted.' }
|
|
127
|
+
: { ok: false, message: 'Bearer probe failed.' },
|
|
128
|
+
});
|
|
314
129
|
}
|
|
315
130
|
const authOk = auth?.ok ?? false;
|
|
316
131
|
if (!authOk && !systemCaDeferred) {
|
|
@@ -321,130 +136,41 @@ export async function runWizard(deps = DEFAULT_WIZARD_DEPS) {
|
|
|
321
136
|
return 3;
|
|
322
137
|
}
|
|
323
138
|
}
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
// only by the fat loader). Flip YTB_MCP_MODE off to fall back to fat.
|
|
337
|
-
// Corporate TLS-inspection: trust the chosen root CA natively. `buildCaEnv`
|
|
338
|
-
// resolves the right key for the strategy + Node version: a `.pem` path →
|
|
339
|
-
// NODE_EXTRA_CA_CERTS (any Node); OS trust store → NODE_OPTIONS=--use-system-ca
|
|
340
|
-
// (Node ≥ 22.15, else warn to use a .pem). Never disables verification.
|
|
341
|
-
// Pass an empty `currentEnv` so the WRITTEN config's NODE_OPTIONS is a clean
|
|
342
|
-
// `--use-system-ca` for the MCP server's own runtime — not the operator's
|
|
343
|
-
// current shell NODE_OPTIONS (which is irrelevant to the spawned server).
|
|
344
|
-
//
|
|
345
|
-
// P0.1 (default-on CA bake) — the install-blocker Glöckle hit: a DEFAULT
|
|
346
|
-
// `setup` (no `--ca` flag) against a corporate-proxied / TLS-inspected site
|
|
347
|
-
// baked NOTHING, so the very first `/mcp` connect hung 30s on the untrusted
|
|
348
|
-
// CA. Make the bake default-on: when the operator gave NO explicit CA choice
|
|
349
|
-
// AND we have a corporate-network signal (a forward proxy is configured, OR
|
|
350
|
-
// the health probe reported a TLS chain-of-trust failure), auto-select the
|
|
351
|
-
// OS trust store on a supporting Node (Node ≥ 22.15 → NODE_OPTIONS=
|
|
352
|
-
// --use-system-ca, zero-export). On an older Node we can't write a flag it
|
|
353
|
-
// would reject, so we leave the env untouched and warn the operator to
|
|
354
|
-
// re-run with `--ca <corp-root-ca.pem>`. Idempotent: `withSystemCaFlag`
|
|
355
|
-
// dedupes the flag. An explicit `--ca` / interactive CA choice always wins
|
|
356
|
-
// (this only fills the gap when the operator chose nothing).
|
|
357
|
-
const caExplicit = caChoice.caCertPath !== undefined || caChoice.caMode !== undefined;
|
|
358
|
-
if (!caExplicit) {
|
|
359
|
-
const proxyPresent = hasProxyConfigured(deps.processEnv ?? process.env);
|
|
360
|
-
const tlsTrustFailure = health.caTrust === true;
|
|
361
|
-
if (proxyPresent || tlsTrustFailure) {
|
|
362
|
-
const reason = proxyPresent
|
|
363
|
-
? 'a corporate forward proxy (HTTP(S)_PROXY) is configured'
|
|
364
|
-
: 'the site presented an untrusted (TLS-inspection) certificate';
|
|
365
|
-
if (supportsSystemCa(nodeVersion)) {
|
|
366
|
-
caChoice = { caMode: 'system' };
|
|
367
|
-
const baked = `Corporate network detected (${reason}) — baking NODE_OPTIONS=--use-system-ca so the server trusts your OS / corporate root CA store. Re-run with \`--ca <path-to-corp-root-ca.pem>\` to pin a specific .pem instead. Never disables TLS verification.`;
|
|
368
|
-
// Route through BOTH the clack UI (human, interactive) and the
|
|
369
|
-
// logFn sink (stderr / captured in tests + non-TTY installs).
|
|
370
|
-
log.info(baked);
|
|
371
|
-
logFn(baked);
|
|
372
|
-
}
|
|
373
|
-
else {
|
|
374
|
-
const warnPem = `Corporate network detected (${reason}), but this Node (${nodeVersion}) is below 22.15 and cannot read the OS trust store (--use-system-ca). Re-run setup with \`--ca <path-to-corp-root-ca.pem>\` (export your corporate root CA to a .pem). Never disable TLS verification.`;
|
|
375
|
-
log.warn(warnPem);
|
|
376
|
-
logFn(warnPem);
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
const caEnv = buildCaEnv(caChoice, nodeVersion, {});
|
|
381
|
-
for (const w of caEnv.warnings)
|
|
382
|
-
log.warn(w);
|
|
383
|
-
// Glöckle gap #15 — pin the npx version when requested (`--pin` /
|
|
384
|
-
// YTB_MCP_VERSION); default is the floating @latest the update-notifier
|
|
385
|
-
// expects. A malformed pin degrades to floating with a warning.
|
|
386
|
-
const npx = buildNpxSpec(SERVER_NAME, answers.versionPin);
|
|
387
|
-
if (npx.error !== undefined)
|
|
388
|
-
log.warn(npx.error);
|
|
389
|
-
if (npx.pinned) {
|
|
390
|
-
log.info(`Pinning the MCP server to ${npx.spec} (air-gapped / reproducible). Re-run setup without --pin to float to the latest.`);
|
|
391
|
-
}
|
|
392
|
-
const serverConfig = {
|
|
393
|
-
command: 'npx',
|
|
394
|
-
args: ['-y', npx.spec],
|
|
395
|
-
env: {
|
|
396
|
-
YTB_MCP_SITE_URL: answers.wpUrl,
|
|
397
|
-
YTB_MCP_WP_URL: answers.wpUrl,
|
|
398
|
-
YTB_MCP_BEARER_TOKEN: answers.bearer,
|
|
399
|
-
YTB_MCP_MODE: 'proxy',
|
|
400
|
-
// Persist the resolved platform so the runtime proxy (proxy/mode.ts)
|
|
401
|
-
// routes to the Joomla `/api/index.php/...` `/mcp` endpoint instead
|
|
402
|
-
// of silently assuming the WordPress `/wp-json/...` one. Shared
|
|
403
|
-
// contract with Slice A: values are 'wordpress' | 'joomla'.
|
|
404
|
-
YTB_MCP_PLATFORM: resolvedKind,
|
|
405
|
-
...caEnv.env,
|
|
406
|
-
},
|
|
407
|
-
};
|
|
408
|
-
const writes = [];
|
|
409
|
-
let writeFailed = false;
|
|
410
|
-
for (const id of answers.selectedClients) {
|
|
411
|
-
const result = await deps.writeClient(id, SERVER_KEY, serverConfig);
|
|
412
|
-
writes.push(result);
|
|
413
|
-
if (!result.ok) {
|
|
414
|
-
writeFailed = true;
|
|
415
|
-
break;
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
const summary = writes
|
|
419
|
-
.map((r) => r.ok
|
|
420
|
-
? ` ✓ ${r.label}: configured`
|
|
421
|
-
: ` ✗ ${r.label}: FAILED (${r.error ?? 'unknown'})`)
|
|
422
|
-
.join('\n');
|
|
423
|
-
note(summary, 'Results');
|
|
424
|
-
if (writeFailed) {
|
|
425
|
-
log.error('Write failed — rolling back any partial writes.');
|
|
426
|
-
await rollbackWrites(writes, logFn);
|
|
139
|
+
announcePhase('Installing');
|
|
140
|
+
const installed = await installClientConfigs({
|
|
141
|
+
answers,
|
|
142
|
+
deps,
|
|
143
|
+
resolvedKind,
|
|
144
|
+
caChoice,
|
|
145
|
+
health,
|
|
146
|
+
nodeVersion,
|
|
147
|
+
...(timeoutMs !== undefined ? { timeoutMs } : {}),
|
|
148
|
+
logFn,
|
|
149
|
+
});
|
|
150
|
+
if (installed.writeFailed)
|
|
427
151
|
return 4;
|
|
428
|
-
|
|
429
|
-
// 5. Dist-tag handshake (only when auth probe succeeded — there's
|
|
430
|
-
// no point handshaking with a known-bad token).
|
|
152
|
+
const writes = installed.writes;
|
|
431
153
|
if (authOk) {
|
|
432
|
-
const
|
|
433
|
-
|
|
434
|
-
|
|
154
|
+
const hs = await runStep({
|
|
155
|
+
running: 'Verifying dist-tag handshake…',
|
|
156
|
+
run: async () => deps.handshake(answers.wpUrl, answers.bearer, SERVER_VERSION, resolvedPlatform),
|
|
157
|
+
verdict: (r) => {
|
|
158
|
+
if (!r.ok)
|
|
159
|
+
return { ok: false, message: 'Handshake failed.' };
|
|
160
|
+
return {
|
|
161
|
+
ok: true,
|
|
162
|
+
message: r.warning !== undefined ? 'Handshake OK (with warning).' : 'Handshake OK.',
|
|
163
|
+
};
|
|
164
|
+
},
|
|
165
|
+
});
|
|
435
166
|
if (!hs.ok) {
|
|
436
|
-
hsSpinner.stop('Handshake failed.');
|
|
437
167
|
log.error(`Handshake failed after writing configs: ${hs.error ?? 'unknown'}. Rolling back.`);
|
|
438
168
|
await rollbackWrites(writes, logFn);
|
|
169
|
+
cancel('Setup stopped: the handshake failed and the client configs were rolled back.');
|
|
439
170
|
return 5;
|
|
440
171
|
}
|
|
441
|
-
if (hs.warning !== undefined)
|
|
442
|
-
hsSpinner.stop('Handshake OK (with warning).');
|
|
172
|
+
if (hs.warning !== undefined)
|
|
443
173
|
log.warn(hs.warning);
|
|
444
|
-
}
|
|
445
|
-
else {
|
|
446
|
-
hsSpinner.stop('Handshake OK.');
|
|
447
|
-
}
|
|
448
174
|
}
|
|
449
175
|
else if (systemCaDeferred) {
|
|
450
176
|
log.info('Skipping the live handshake — the OS trust store is validated when the MCP server next launches.');
|
|
@@ -452,33 +178,62 @@ export async function runWizard(deps = DEFAULT_WIZARD_DEPS) {
|
|
|
452
178
|
else {
|
|
453
179
|
log.warn('Skipping handshake because the Bearer probe failed.');
|
|
454
180
|
}
|
|
455
|
-
|
|
456
|
-
// when the dispatcher wired a `persistSite` callback. We do this
|
|
457
|
-
// AFTER the handshake passes so the sites.json never contains a
|
|
458
|
-
// site that failed the probe. Optional hook so pre-W9 callers
|
|
459
|
-
// (and tests that drive the wizard without sites.json) skip the
|
|
460
|
-
// write transparently.
|
|
181
|
+
let persistFailed = false;
|
|
461
182
|
if (deps.persistSite !== undefined && writes.every((r) => r.ok)) {
|
|
462
183
|
try {
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
await deps.persistSite({ ...answers, platform: resolvedKind });
|
|
184
|
+
const receipt = await deps.persistSite({ ...answers, platform: resolvedKind });
|
|
185
|
+
if (typeof receipt === 'string' && receipt.length > 0)
|
|
186
|
+
log.step(receipt);
|
|
467
187
|
}
|
|
468
188
|
catch (e) {
|
|
469
189
|
const msg = e instanceof Error ? e.message : String(e);
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
190
|
+
persistFailed = true;
|
|
191
|
+
const cause = msg.replace(/\.\s*$/, '');
|
|
192
|
+
log.error(`Failed to persist site to sites.json: ${cause}. `
|
|
193
|
+
+ (e instanceof RegistryWriteFailure
|
|
194
|
+
? e.remedy
|
|
195
|
+
: REGISTRY_SITE_MISSING_REMEDY));
|
|
474
196
|
}
|
|
475
197
|
}
|
|
476
|
-
if (
|
|
477
|
-
|
|
198
|
+
if (deps.installSkill !== undefined) {
|
|
199
|
+
try {
|
|
200
|
+
await runStep({
|
|
201
|
+
running: 'Installing the skill…',
|
|
202
|
+
run: deps.installSkill,
|
|
203
|
+
verdict: (message) => ({ ok: true, message }),
|
|
204
|
+
onThrow: (message) => `Skill install skipped (${message}). Run 'yt-builder-mcp install-skill' manually.`,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
}
|
|
478
209
|
}
|
|
479
|
-
|
|
480
|
-
|
|
210
|
+
try {
|
|
211
|
+
deps.clearResume?.();
|
|
212
|
+
}
|
|
213
|
+
catch (e) {
|
|
214
|
+
logFn(`Could not remove the setup resume file: ${e instanceof Error ? e.message : String(e)}`);
|
|
215
|
+
}
|
|
216
|
+
if (persistFailed) {
|
|
217
|
+
outro('Setup finished: your AI clients are configured, the site registry is not.');
|
|
218
|
+
return 6;
|
|
219
|
+
}
|
|
220
|
+
const cleanPass = writes.every((r) => r.ok) && (authOk || systemCaDeferred);
|
|
221
|
+
if (deps.confirmAnotherSite !== undefined && (await deps.confirmAnotherSite())) {
|
|
222
|
+
if (!cleanPass) {
|
|
223
|
+
log.warn('This site is configured, but with warnings. See the messages above.');
|
|
224
|
+
}
|
|
225
|
+
return 0;
|
|
226
|
+
}
|
|
227
|
+
if (cleanPass) {
|
|
228
|
+
await deps.printClosing?.({
|
|
229
|
+
siteId: resolveSiteId(answers.siteId),
|
|
230
|
+
url: answers.wpUrl,
|
|
231
|
+
clientLabels: writes.filter((r) => r.ok).map((r) => r.label),
|
|
232
|
+
});
|
|
481
233
|
}
|
|
234
|
+
outro(cleanPass
|
|
235
|
+
? 'Done — restart your AI client to load the new MCP server.'
|
|
236
|
+
: 'Setup finished with warnings. See the messages above.');
|
|
482
237
|
return 0;
|
|
483
238
|
}
|
|
484
239
|
//# sourceMappingURL=setup-wizard.js.map
|