@wootsup/yt-builder-mcp 1.12.0 → 2.1.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 +139 -40
- package/bin/node-floor.d.ts +28 -0
- package/bin/node-floor.js +150 -0
- package/bin/yt-builder-mcp.js +51 -10
- package/dist/auth.d.ts +3 -121
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +44 -174
- 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 +8 -52
- 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 +21 -62
- 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 +46 -55
- 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 +1 -23
- 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 +1 -19
- 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 +1 -34
- 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 +12 -147
- package/dist/clients/codex-cli.js.map +1 -1
- package/dist/clients/config-file.d.ts +15 -0
- package/dist/clients/config-file.d.ts.map +1 -0
- package/dist/clients/config-file.js +86 -0
- package/dist/clients/config-file.js.map +1 -0
- package/dist/clients/continue.d.ts +0 -10
- package/dist/clients/continue.d.ts.map +1 -1
- package/dist/clients/continue.js +3 -30
- 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 +1 -12
- 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 +1 -18
- 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 +2 -153
- package/dist/clients/index.d.ts.map +1 -1
- package/dist/clients/index.js +3 -153
- 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 +1 -23
- 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 +1 -19
- 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 +27 -38
- package/dist/diagnostics/diagnose-network-error.js.map +1 -1
- package/dist/diagnostics/doctor.d.ts +1 -85
- package/dist/diagnostics/doctor.d.ts.map +1 -1
- package/dist/diagnostics/doctor.js +7 -92
- 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 +1 -33
- 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 +15 -24
- 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 +9 -178
- 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 +8 -48
- 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/product-name.d.ts +2 -0
- package/dist/product-name.d.ts.map +1 -0
- package/dist/product-name.js +2 -0
- package/dist/product-name.js.map +1 -0
- 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 +109 -204
- 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 +120 -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 +95 -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 +165 -177
- 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 +2 -37
- package/dist/setup-wizard-defaults.d.ts.map +1 -1
- package/dist/setup-wizard-defaults.js +28 -93
- 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 +18 -217
- 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-write-types.d.ts +19 -0
- package/dist/setup-wizard-write-types.d.ts.map +1 -0
- package/dist/setup-wizard-write-types.js +2 -0
- package/dist/setup-wizard-write-types.js.map +1 -0
- 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 +65 -79
- 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 +2 -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 -79
- 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 +85 -0
- package/dist/skill-instructions.js.map +1 -0
- package/dist/skill-loader.d.ts +1 -103
- package/dist/skill-loader.d.ts.map +1 -1
- package/dist/skill-loader.js +6 -143
- 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 +14 -19
- package/dist/tools/budgeted-table.d.ts.map +1 -1
- package/dist/tools/budgeted-table.js +171 -105
- package/dist/tools/budgeted-table.js.map +1 -1
- 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 +147 -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 +26 -43
- package/dist/tools/format/health-format.d.ts.map +1 -1
- package/dist/tools/format/health-format.js +32 -63
- package/dist/tools/format/health-format.js.map +1 -1
- package/dist/tools/format/inspection-format.d.ts +2 -54
- package/dist/tools/format/inspection-format.d.ts.map +1 -1
- package/dist/tools/format/inspection-format.js +33 -119
- 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 +114 -139
- 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 +84 -0
- package/dist/tools/health-output-schemas.d.ts.map +1 -0
- package/dist/tools/health-output-schemas.js +132 -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 +47 -233
- 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 +12 -39
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/inspection.d.ts +4 -34
- package/dist/tools/inspection.d.ts.map +1 -1
- package/dist/tools/inspection.js +164 -536
- package/dist/tools/inspection.js.map +1 -1
- package/dist/tools/library.d.ts +115 -127
- package/dist/tools/library.d.ts.map +1 -1
- package/dist/tools/library.js +707 -455
- 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 +103 -46
- 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 -65
- 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 +1 -16
- package/dist/tools/navigation/builders.d.ts.map +1 -1
- package/dist/tools/navigation/builders.js +5 -27
- package/dist/tools/navigation/builders.js.map +1 -1
- package/dist/tools/navigation/index.d.ts +0 -13
- package/dist/tools/navigation/index.d.ts.map +1 -1
- package/dist/tools/navigation/index.js +0 -12
- package/dist/tools/navigation/index.js.map +1 -1
- package/dist/tools/navigation/schemas.d.ts +0 -30
- package/dist/tools/navigation/schemas.d.ts.map +1 -1
- package/dist/tools/navigation/schemas.js +0 -30
- package/dist/tools/navigation/schemas.js.map +1 -1
- 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 +320 -405
- package/dist/tools/pages/builders.js.map +1 -1
- package/dist/tools/pages/header-transparency.d.ts +2 -32
- package/dist/tools/pages/header-transparency.d.ts.map +1 -1
- package/dist/tools/pages/header-transparency.js +9 -43
- package/dist/tools/pages/header-transparency.js.map +1 -1
- 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 +323 -241
- package/dist/tools/pages/schemas.d.ts.map +1 -1
- package/dist/tools/pages/schemas.js +514 -549
- 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 +31 -106
- 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 +0 -69
- package/dist/tools/response-budget.d.ts.map +1 -1
- package/dist/tools/response-budget.js +0 -127
- package/dist/tools/response-budget.js.map +1 -1
- package/dist/tools/shared-schemas.d.ts +11 -65
- package/dist/tools/shared-schemas.d.ts.map +1 -1
- package/dist/tools/shared-schemas.js +40 -123
- 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 +194 -170
- 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 +16 -232
- package/dist/tools/sparse-fields.d.ts.map +1 -1
- package/dist/tools/sparse-fields.js +178 -242
- 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 -39
- 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 -124
- package/dist/tools/tool-builder/results.d.ts.map +1 -1
- package/dist/tools/tool-builder/results.js +258 -263
- 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 +3 -50
- 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 +7 -12
- package/package.json +6 -11
- package/skills/yt-builder-mcp/SKILL.md +1871 -414
- package/dist/tools/elements/handlers-write.d.ts +0 -89
- package/dist/tools/elements/handlers-write.d.ts.map +0 -1
- package/dist/tools/elements/handlers-write.js +0 -797
- package/dist/tools/elements/handlers-write.js.map +0 -1
- package/dist/tools/elements/handlers.d.ts +0 -130
- package/dist/tools/elements/handlers.d.ts.map +0 -1
- package/dist/tools/elements/handlers.js +0 -581
- 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 -218
- package/dist/tools/elements/schema-validation.d.ts.map +0 -1
- package/dist/tools/elements/schema-validation.js +0 -685
- 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 -368
- 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 -56
- package/dist/tools/local-content/handlers.d.ts.map +0 -1
- package/dist/tools/local-content/handlers.js +0 -320
- 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/navigation/handlers.d.ts +0 -30
- package/dist/tools/navigation/handlers.d.ts.map +0 -1
- package/dist/tools/navigation/handlers.js +0 -41
- package/dist/tools/navigation/handlers.js.map +0 -1
- package/dist/tools/pages/handlers-audit.d.ts +0 -140
- package/dist/tools/pages/handlers-audit.d.ts.map +0 -1
- package/dist/tools/pages/handlers-audit.js +0 -714
- package/dist/tools/pages/handlers-audit.js.map +0 -1
- package/dist/tools/pages/handlers-read.d.ts +0 -133
- package/dist/tools/pages/handlers-read.d.ts.map +0 -1
- package/dist/tools/pages/handlers-read.js +0 -1061
- 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 -419
- 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 -657
- package/dist/tools/sources/handlers-bind.js.map +0 -1
- package/dist/tools/sources/handlers.d.ts +0 -116
- package/dist/tools/sources/handlers.d.ts.map +0 -1
- package/dist/tools/sources/handlers.js +0 -289
- 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,60 +1,23 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* W9 — `remove-site` CLI subcommand.
|
|
3
|
-
*
|
|
4
|
-
* Removes ONE site entry by `site_id`. Auto-promotion policy (per
|
|
5
|
-
* plan §C.3):
|
|
6
|
-
* - Removing a non-default site → plain delete, default_site_id and
|
|
7
|
-
* the other entries' is_default flags are untouched.
|
|
8
|
-
* - Removing the default AND there is at least one other site →
|
|
9
|
-
* promote the next-in-insertion-order site to default
|
|
10
|
-
* (`is_default:true` + `default_site_id` update).
|
|
11
|
-
* - Removing the only site → `default_site_id: null`, empty array.
|
|
12
|
-
*
|
|
13
|
-
* Returns a structured {@link RemoveSiteResult} so the dispatcher can
|
|
14
|
-
* render the "(default → promoted X)" hint and tests can assert
|
|
15
|
-
* promotion behaviour without parsing stdout.
|
|
16
|
-
*
|
|
17
|
-
* `--yes` skips the confirmation hook supplied by the dispatcher.
|
|
18
|
-
* Production callers always wire a confirm hook; tests pass yes=true
|
|
19
|
-
* to bypass it.
|
|
20
|
-
*
|
|
21
|
-
* @license MIT
|
|
22
|
-
*/
|
|
23
1
|
import type { SitesFileT } from '../schema.js';
|
|
24
2
|
export interface RemoveSiteOptions {
|
|
25
|
-
/** Skip confirmation when true. CLI passes through from --yes. */
|
|
26
3
|
readonly yes?: boolean;
|
|
27
4
|
}
|
|
28
5
|
export interface RemoveSiteResult {
|
|
29
6
|
readonly siteId: string;
|
|
30
|
-
/** Path of the sites.json that was written. */
|
|
31
7
|
readonly path: string;
|
|
32
|
-
/** site_id that was promoted to default (only when removing default + ≥1 other). */
|
|
33
8
|
readonly promoted?: string;
|
|
34
|
-
/** True when the registry became empty after the remove. */
|
|
35
9
|
readonly nowEmpty: boolean;
|
|
36
|
-
/** True when no write happened because --yes was missing on confirm. */
|
|
37
10
|
readonly cancelled: boolean;
|
|
38
11
|
}
|
|
39
12
|
export declare class RemoveSiteError extends Error {
|
|
40
13
|
readonly code: string;
|
|
41
14
|
constructor(code: string, message: string);
|
|
42
15
|
}
|
|
43
|
-
/** Test/IO injection seam. */
|
|
44
16
|
export interface RemoveSiteDeps {
|
|
45
17
|
readonly load: (path: string) => Promise<SitesFileT>;
|
|
46
18
|
readonly save: (path: string, data: SitesFileT) => Promise<void>;
|
|
47
|
-
/**
|
|
48
|
-
* Confirm hook. Production dispatcher wires this to a clack
|
|
49
|
-
* prompt; tests pass `--yes` so this is never invoked.
|
|
50
|
-
*/
|
|
51
19
|
readonly confirm?: (message: string) => Promise<boolean>;
|
|
52
20
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Remove a site by `site_id`. See file header for the auto-promotion
|
|
55
|
-
* policy. Throws {@link RemoveSiteError} with code `'UNKNOWN_SITE'`
|
|
56
|
-
* when `siteId` is not in the registry.
|
|
57
|
-
*/
|
|
58
21
|
export declare function removeSiteCommand(siteId: string, path: string, opts: RemoveSiteOptions, deps: RemoveSiteDeps): Promise<RemoveSiteResult>;
|
|
59
22
|
export declare const DEFAULT_REMOVE_SITE_DEPS: RemoveSiteDeps;
|
|
60
23
|
//# sourceMappingURL=remove-site.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-site.d.ts","sourceRoot":"","sources":["../../../src/sites/cli/remove-site.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remove-site.d.ts","sourceRoot":"","sources":["../../../src/sites/cli/remove-site.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAE9B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC/B;AAED,qBAAa,eAAgB,SAAQ,KAAK;aACV,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI5D;AAGD,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAKjE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5D;AAOD,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,cAAc,GACrB,OAAO,CAAC,gBAAgB,CAAC,CA8F3B;AAED,eAAO,MAAM,wBAAwB,EAAE,cAGtC,CAAC"}
|
|
@@ -1,25 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* W9 — `remove-site` CLI subcommand.
|
|
3
|
-
*
|
|
4
|
-
* Removes ONE site entry by `site_id`. Auto-promotion policy (per
|
|
5
|
-
* plan §C.3):
|
|
6
|
-
* - Removing a non-default site → plain delete, default_site_id and
|
|
7
|
-
* the other entries' is_default flags are untouched.
|
|
8
|
-
* - Removing the default AND there is at least one other site →
|
|
9
|
-
* promote the next-in-insertion-order site to default
|
|
10
|
-
* (`is_default:true` + `default_site_id` update).
|
|
11
|
-
* - Removing the only site → `default_site_id: null`, empty array.
|
|
12
|
-
*
|
|
13
|
-
* Returns a structured {@link RemoveSiteResult} so the dispatcher can
|
|
14
|
-
* render the "(default → promoted X)" hint and tests can assert
|
|
15
|
-
* promotion behaviour without parsing stdout.
|
|
16
|
-
*
|
|
17
|
-
* `--yes` skips the confirmation hook supplied by the dispatcher.
|
|
18
|
-
* Production callers always wire a confirm hook; tests pass yes=true
|
|
19
|
-
* to bypass it.
|
|
20
|
-
*
|
|
21
|
-
* @license MIT
|
|
22
|
-
*/
|
|
23
1
|
import { saveSitesFile, loadSitesFile } from '../store.js';
|
|
24
2
|
export class RemoveSiteError extends Error {
|
|
25
3
|
code;
|
|
@@ -29,11 +7,6 @@ export class RemoveSiteError extends Error {
|
|
|
29
7
|
this.name = 'RemoveSiteError';
|
|
30
8
|
}
|
|
31
9
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Remove a site by `site_id`. See file header for the auto-promotion
|
|
34
|
-
* policy. Throws {@link RemoveSiteError} with code `'UNKNOWN_SITE'`
|
|
35
|
-
* when `siteId` is not in the registry.
|
|
36
|
-
*/
|
|
37
10
|
export async function removeSiteCommand(siteId, path, opts, deps) {
|
|
38
11
|
const file = await deps.load(path);
|
|
39
12
|
const index = file.sites.findIndex((s) => s.site_id === siteId);
|
|
@@ -43,13 +16,6 @@ export async function removeSiteCommand(siteId, path, opts, deps) {
|
|
|
43
16
|
? `Available: ${file.sites.map((s) => s.site_id).join(', ')}.`
|
|
44
17
|
: '(no sites configured)'));
|
|
45
18
|
}
|
|
46
|
-
// W12-R2A (A2-H1) — fail-closed guard. Round 1's check silently
|
|
47
|
-
// proceeded when neither `--yes` NOR a confirm hook was supplied
|
|
48
|
-
// (deps.confirm === undefined). That made the destructive op a
|
|
49
|
-
// no-prompt delete in any non-TTY context (CI, piped stdin, MCP
|
|
50
|
-
// server stdio). Tighten to: if `--yes` is not set, a confirm hook
|
|
51
|
-
// is REQUIRED — otherwise throw a typed error so the dispatcher
|
|
52
|
-
// can surface "pass --yes" with a non-zero exit code.
|
|
53
19
|
if (opts.yes !== true) {
|
|
54
20
|
if (deps.confirm === undefined) {
|
|
55
21
|
throw new RemoveSiteError('CONFIRM_REQUIRED', `Remove of site "${siteId}" requires --yes (no interactive `
|
|
@@ -67,7 +33,6 @@ export async function removeSiteCommand(siteId, path, opts, deps) {
|
|
|
67
33
|
}
|
|
68
34
|
const wasDefault = file.sites[index]?.is_default === true
|
|
69
35
|
|| file.default_site_id === siteId;
|
|
70
|
-
// Drop the target entry, preserving insertion order.
|
|
71
36
|
const remaining = file.sites.filter((_, i) => i !== index);
|
|
72
37
|
let promoted;
|
|
73
38
|
let nextSites = remaining;
|
|
@@ -79,7 +44,6 @@ export async function removeSiteCommand(siteId, path, opts, deps) {
|
|
|
79
44
|
else {
|
|
80
45
|
const promote = remaining[0];
|
|
81
46
|
if (promote === undefined) {
|
|
82
|
-
// unreachable due to length check, but keeps TS strict.
|
|
83
47
|
nextDefaultId = null;
|
|
84
48
|
}
|
|
85
49
|
else {
|
|
@@ -93,7 +57,6 @@ export async function removeSiteCommand(siteId, path, opts, deps) {
|
|
|
93
57
|
}
|
|
94
58
|
}
|
|
95
59
|
else {
|
|
96
|
-
// Make sure default_site_id still points at a present entry.
|
|
97
60
|
if (nextDefaultId !== null
|
|
98
61
|
&& !remaining.some((s) => s.site_id === nextDefaultId)) {
|
|
99
62
|
nextDefaultId = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-site.js","sourceRoot":"","sources":["../../../src/sites/cli/remove-site.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remove-site.js","sourceRoot":"","sources":["../../../src/sites/cli/remove-site.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* W9 — `set-default` CLI subcommand.
|
|
3
|
-
*
|
|
4
|
-
* Flips the `is_default` flag on the target entry to `true`, clears
|
|
5
|
-
* it on every other entry, and updates `default_site_id` to the
|
|
6
|
-
* target. Fails with code `'UNKNOWN_SITE'` when the site_id is not
|
|
7
|
-
* present.
|
|
8
|
-
*
|
|
9
|
-
* Idempotent: setting the already-default site as default is a
|
|
10
|
-
* successful no-op (the file is still rewritten so any drift between
|
|
11
|
-
* `default_site_id` and the per-entry `is_default` flag is healed in
|
|
12
|
-
* the same pass).
|
|
13
|
-
*
|
|
14
|
-
* @license MIT
|
|
15
|
-
*/
|
|
16
1
|
import type { SitesFileT } from '../schema.js';
|
|
17
2
|
export interface SetDefaultOptions {
|
|
18
|
-
/** Skip the confirmation prompt when true. CLI passes through from --yes. */
|
|
19
3
|
readonly yes?: boolean;
|
|
20
4
|
}
|
|
21
5
|
export interface SetDefaultResult {
|
|
22
6
|
readonly siteId: string;
|
|
23
7
|
readonly path: string;
|
|
24
|
-
/** site_id that was the default BEFORE this call (null when none). */
|
|
25
8
|
readonly previousDefault: string | null;
|
|
26
|
-
/** True when no write happened because the confirm hook rejected. */
|
|
27
9
|
readonly cancelled: boolean;
|
|
28
10
|
}
|
|
29
11
|
export declare class SetDefaultError extends Error {
|
|
@@ -33,13 +15,6 @@ export declare class SetDefaultError extends Error {
|
|
|
33
15
|
export interface SetDefaultDeps {
|
|
34
16
|
readonly load: (path: string) => Promise<SitesFileT>;
|
|
35
17
|
readonly save: (path: string, data: SitesFileT) => Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* Confirm hook. Production dispatcher wires this to a y/N readline
|
|
38
|
-
* prompt; tests pass `--yes` so this is never invoked. W12-R2A:
|
|
39
|
-
* `set-default` is destructive in the routing sense — every
|
|
40
|
-
* subsequent tool call routes to the new default — so the guard
|
|
41
|
-
* matches the remove-site shape.
|
|
42
|
-
*/
|
|
43
18
|
readonly confirm?: (message: string) => Promise<boolean>;
|
|
44
19
|
}
|
|
45
20
|
export declare function setDefaultCommand(siteId: string, path: string, opts: SetDefaultOptions, deps: SetDefaultDeps): Promise<SetDefaultResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-default.d.ts","sourceRoot":"","sources":["../../../src/sites/cli/set-default.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"set-default.d.ts","sourceRoot":"","sources":["../../../src/sites/cli/set-default.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAE9B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC/B;AAED,qBAAa,eAAgB,SAAQ,KAAK;aACV,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI5D;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAQjE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5D;AAED,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,cAAc,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAqD3B;AAED,eAAO,MAAM,wBAAwB,EAAE,cAGtC,CAAC"}
|
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* W9 — `set-default` CLI subcommand.
|
|
3
|
-
*
|
|
4
|
-
* Flips the `is_default` flag on the target entry to `true`, clears
|
|
5
|
-
* it on every other entry, and updates `default_site_id` to the
|
|
6
|
-
* target. Fails with code `'UNKNOWN_SITE'` when the site_id is not
|
|
7
|
-
* present.
|
|
8
|
-
*
|
|
9
|
-
* Idempotent: setting the already-default site as default is a
|
|
10
|
-
* successful no-op (the file is still rewritten so any drift between
|
|
11
|
-
* `default_site_id` and the per-entry `is_default` flag is healed in
|
|
12
|
-
* the same pass).
|
|
13
|
-
*
|
|
14
|
-
* @license MIT
|
|
15
|
-
*/
|
|
16
1
|
import { loadSitesFile, saveSitesFile } from '../store.js';
|
|
17
2
|
export class SetDefaultError extends Error {
|
|
18
3
|
code;
|
|
@@ -31,13 +16,6 @@ export async function setDefaultCommand(siteId, path, opts, deps) {
|
|
|
31
16
|
: '(no sites configured)'));
|
|
32
17
|
}
|
|
33
18
|
const previousDefault = file.default_site_id;
|
|
34
|
-
// W12-R2A (A2-M1) — destructive-routing-op safeguard. Flipping the
|
|
35
|
-
// default redirects every subsequent tool call that omits `site_id`
|
|
36
|
-
// to a different connected site. That can silently land write-ops
|
|
37
|
-
// on the wrong CMS install. Fail-closed: if `--yes` is not set, a
|
|
38
|
-
// confirm hook is REQUIRED. Idempotent flip (already-default) is
|
|
39
|
-
// still gated — the file is rewritten even on no-op, and an
|
|
40
|
-
// operator confirming "yes" is the only reliable safe-belt.
|
|
41
19
|
if (opts.yes !== true) {
|
|
42
20
|
if (deps.confirm === undefined) {
|
|
43
21
|
throw new SetDefaultError('SET_DEFAULT_CONFIRM_REQUIRED', `Setting default to "${siteId}" requires --yes (no interactive `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-default.js","sourceRoot":"","sources":["../../../src/sites/cli/set-default.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"set-default.js","sourceRoot":"","sources":["../../../src/sites/cli/set-default.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAiB3D,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACV;IAA5B,YAA4B,IAAY,EAAE,OAAe;QACrD,KAAK,CAAC,OAAO,CAAC,CAAC;QADS,SAAI,GAAJ,IAAI,CAAQ;QAEpC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAClC,CAAC;CACJ;AAeD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,MAAc,EACd,IAAY,EACZ,IAAuB,EACvB,IAAoB;IAEpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,eAAe,CACrB,cAAc,EACd,SAAS,MAAM,kBAAkB,IAAI,IAAI;YACrC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAClB,CAAC,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAC9D,CAAC,CAAC,uBAAuB,CAAC,CACrC,CAAC;IACN,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAS7C,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,eAAe,CACrB,8BAA8B,EAC9B,uBAAuB,MAAM,mCAAmC;kBAC1D,2EAA2E,CACpF,CAAC;QACN,CAAC;QACD,MAAM,UAAU,GAAG,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC3B,4BAA4B,UAAU,QAAQ,MAAM,QAAQ,IAAI,IAAI;cAC9D,0EAA0E,CACnF,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC9D,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAiB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,GAAG,CAAC;QACJ,UAAU,EAAE,CAAC,CAAC,OAAO,KAAK,MAAM;KACnC,CAAC,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAe;QACzB,cAAc,EAAE,CAAC;QACjB,eAAe,EAAE,MAAM;QACvB,KAAK,EAAE,SAAS;KACnB,CAAC;IAEF,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEhC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAmB;IACpD,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,aAAa;CACtB,CAAC"}
|
|
@@ -1,30 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* W9 — `test-site` CLI subcommand.
|
|
3
|
-
*
|
|
4
|
-
* Live connectivity probe for ONE site_id. Mirrors the runtime
|
|
5
|
-
* behaviour of the `yootheme_builder_sites_test` MCP tool, but from
|
|
6
|
-
* the CLI so operators can pre-flight a site without launching the
|
|
7
|
-
* stdio server.
|
|
8
|
-
*
|
|
9
|
-
* Pipeline (per plan §W9):
|
|
10
|
-
* 1. Load `sites.json` via the W1 store.
|
|
11
|
-
* 2. Build a {@link SiteRegistry} + {@link ClientPool} from the
|
|
12
|
-
* entries, wired to the supplied {@link SecretResolver}.
|
|
13
|
-
* 3. Call `pool.resolve(siteId)` → throws structured
|
|
14
|
-
* {@link UnknownSiteError} / {@link NoDefaultSiteError} which we
|
|
15
|
-
* map to a structured CLI result + a non-zero exit code.
|
|
16
|
-
* 4. Probe `/health` (no auth) + `/etag` (auth) in parallel via
|
|
17
|
-
* `Promise.allSettled` so a failure on one path never hides the
|
|
18
|
-
* other's outcome.
|
|
19
|
-
* 5. Print a green/red structured result and return it for the
|
|
20
|
-
* dispatcher / tests.
|
|
21
|
-
*
|
|
22
|
-
* Returns a {@link TestSiteResult} (not exit codes directly) so tests
|
|
23
|
-
* can assert deterministic outputs without re-implementing the
|
|
24
|
-
* probe-routing logic.
|
|
25
|
-
*
|
|
26
|
-
* @license MIT
|
|
27
|
-
*/
|
|
28
1
|
import { type Platform, type PlatformKind } from '../../platform/index.js';
|
|
29
2
|
import { ClientPool } from '../client-pool.js';
|
|
30
3
|
import { SiteRegistry } from '../registry.js';
|
|
@@ -40,21 +13,13 @@ export interface TestSiteResult {
|
|
|
40
13
|
readonly summary: string;
|
|
41
14
|
readonly pluginError?: string;
|
|
42
15
|
readonly bearerError?: string;
|
|
43
|
-
/** True when site_id was not in the registry. */
|
|
44
16
|
readonly unknownSite: boolean;
|
|
45
|
-
/** Available ids when unknownSite is true. */
|
|
46
17
|
readonly available?: readonly string[];
|
|
47
18
|
}
|
|
48
19
|
export interface TestSiteDeps {
|
|
49
20
|
readonly load: (path: string) => Promise<SitesFileT>;
|
|
50
21
|
readonly secretResolver?: SecretResolver;
|
|
51
|
-
/** Inject the platform probe for tests (no network). */
|
|
52
22
|
readonly platformForUrlAsync?: (url: string, hint?: PlatformKind) => Promise<Platform>;
|
|
53
|
-
/**
|
|
54
|
-
* Inject the pool factory. Tests pass a pool that does NOT call
|
|
55
|
-
* the real RestClient (they pre-stub the response shape).
|
|
56
|
-
* Production wires the default ClientPool below.
|
|
57
|
-
*/
|
|
58
23
|
readonly buildPool?: (registry: SiteRegistry, resolver: SecretResolver) => ClientPool;
|
|
59
24
|
readonly log?: (line: string) => void;
|
|
60
25
|
}
|
|
@@ -62,16 +27,7 @@ export declare class TestSiteError extends Error {
|
|
|
62
27
|
readonly code: string;
|
|
63
28
|
constructor(code: string, message: string);
|
|
64
29
|
}
|
|
65
|
-
/**
|
|
66
|
-
* Build the runtime result lines for stdout — keeps the live CLI path
|
|
67
|
-
* + tests in sync without forcing tests to parse text.
|
|
68
|
-
*/
|
|
69
30
|
export declare function renderTestSiteLines(result: TestSiteResult): readonly string[];
|
|
70
|
-
/**
|
|
71
|
-
* Probe one site and return a structured outcome. Never throws on a
|
|
72
|
-
* probe failure (those are surfaced inside the result); throws ONLY
|
|
73
|
-
* on file-IO failures the operator cannot recover from.
|
|
74
|
-
*/
|
|
75
31
|
export declare function testSiteCommand(siteId: string, path: string, deps: TestSiteDeps): Promise<TestSiteResult>;
|
|
76
32
|
export declare const DEFAULT_TEST_SITE_DEPS: TestSiteDeps;
|
|
77
33
|
//# sourceMappingURL=test-site.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-site.d.ts","sourceRoot":"","sources":["../../../src/sites/cli/test-site.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test-site.d.ts","sourceRoot":"","sources":["../../../src/sites/cli/test-site.ts"],"names":[],"mappings":"AA4BA,OAAO,EAEH,KAAK,QAAQ,EACb,KAAK,YAAY,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAM/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAEH,KAAK,cAAc,EACtB,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IAEzC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAC3B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,YAAY,KAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;IAMvB,QAAQ,CAAC,SAAS,CAAC,EAAE,CACjB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,cAAc,KACvB,UAAU,CAAC;IAChB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,qBAAa,aAAc,SAAQ,KAAK;aACR,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI5D;AAMD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CA0B7E;AAOD,wBAAsB,eAAe,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,GACnB,OAAO,CAAC,cAAc,CAAC,CAmEzB;AAED,eAAO,MAAM,sBAAsB,EAAE,YAEpC,CAAC"}
|
|
@@ -1,30 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* W9 — `test-site` CLI subcommand.
|
|
3
|
-
*
|
|
4
|
-
* Live connectivity probe for ONE site_id. Mirrors the runtime
|
|
5
|
-
* behaviour of the `yootheme_builder_sites_test` MCP tool, but from
|
|
6
|
-
* the CLI so operators can pre-flight a site without launching the
|
|
7
|
-
* stdio server.
|
|
8
|
-
*
|
|
9
|
-
* Pipeline (per plan §W9):
|
|
10
|
-
* 1. Load `sites.json` via the W1 store.
|
|
11
|
-
* 2. Build a {@link SiteRegistry} + {@link ClientPool} from the
|
|
12
|
-
* entries, wired to the supplied {@link SecretResolver}.
|
|
13
|
-
* 3. Call `pool.resolve(siteId)` → throws structured
|
|
14
|
-
* {@link UnknownSiteError} / {@link NoDefaultSiteError} which we
|
|
15
|
-
* map to a structured CLI result + a non-zero exit code.
|
|
16
|
-
* 4. Probe `/health` (no auth) + `/etag` (auth) in parallel via
|
|
17
|
-
* `Promise.allSettled` so a failure on one path never hides the
|
|
18
|
-
* other's outcome.
|
|
19
|
-
* 5. Print a green/red structured result and return it for the
|
|
20
|
-
* dispatcher / tests.
|
|
21
|
-
*
|
|
22
|
-
* Returns a {@link TestSiteResult} (not exit codes directly) so tests
|
|
23
|
-
* can assert deterministic outputs without re-implementing the
|
|
24
|
-
* probe-routing logic.
|
|
25
|
-
*
|
|
26
|
-
* @license MIT
|
|
27
|
-
*/
|
|
28
1
|
import { platformForUrlAsync, } from '../../platform/index.js';
|
|
29
2
|
import { ClientPool } from '../client-pool.js';
|
|
30
3
|
import { NoDefaultSiteError, UnknownSiteError, } from '../client-pool.js';
|
|
@@ -40,10 +13,6 @@ export class TestSiteError extends Error {
|
|
|
40
13
|
this.name = 'TestSiteError';
|
|
41
14
|
}
|
|
42
15
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Build the runtime result lines for stdout — keeps the live CLI path
|
|
45
|
-
* + tests in sync without forcing tests to parse text.
|
|
46
|
-
*/
|
|
47
16
|
export function renderTestSiteLines(result) {
|
|
48
17
|
if (result.unknownSite) {
|
|
49
18
|
const avail = result.available ?? [];
|
|
@@ -71,11 +40,6 @@ export function renderTestSiteLines(result) {
|
|
|
71
40
|
lines.push('', result.summary);
|
|
72
41
|
return lines;
|
|
73
42
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Probe one site and return a structured outcome. Never throws on a
|
|
76
|
-
* probe failure (those are surfaced inside the result); throws ONLY
|
|
77
|
-
* on file-IO failures the operator cannot recover from.
|
|
78
|
-
*/
|
|
79
43
|
export async function testSiteCommand(siteId, path, deps) {
|
|
80
44
|
const file = await deps.load(path);
|
|
81
45
|
const registry = new SiteRegistry(file, {
|
|
@@ -118,9 +82,6 @@ export async function testSiteCommand(siteId, path, deps) {
|
|
|
118
82
|
}
|
|
119
83
|
throw e;
|
|
120
84
|
}
|
|
121
|
-
// W12-R1.2: probe lives in sites/probe.ts — single source of truth
|
|
122
|
-
// shared with the MCP tool surface so the two output channels never
|
|
123
|
-
// drift on edge cases (401 with /health rejected, 500 on /etag etc.).
|
|
124
85
|
const probe = await probeSite(client);
|
|
125
86
|
const result = {
|
|
126
87
|
siteId: site.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-site.js","sourceRoot":"","sources":["../../../src/sites/cli/test-site.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test-site.js","sourceRoot":"","sources":["../../../src/sites/cli/test-site.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,198 +1,45 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* W4 — ClientPool: caches one {@link RestClient} per `site_id`.
|
|
3
|
-
*
|
|
4
|
-
* The pool sits between the W3 {@link SiteRegistry} (which maps a
|
|
5
|
-
* `site_id` → entry + memoised {@link Platform}) and the W2
|
|
6
|
-
* {@link SecretResolver} (which produces a bearer token at call time)
|
|
7
|
-
* and emits {@link PoolResolution} bundles ready for tool handlers.
|
|
8
|
-
*
|
|
9
|
-
* Design choices (per plan §W4, Z.562-644):
|
|
10
|
-
*
|
|
11
|
-
* - **One client per site_id.** The first `resolve(id)` runs bearer +
|
|
12
|
-
* platform resolve in parallel via `Promise.all` (saves one
|
|
13
|
-
* round-trip-time per cold site) and stores the constructed
|
|
14
|
-
* `RestClient`. All subsequent calls reuse the same instance —
|
|
15
|
-
* identity-equal across the process lifetime.
|
|
16
|
-
*
|
|
17
|
-
* - **Cold parallel calls are racey-but-safe.** When N callers arrive
|
|
18
|
-
* for the same uncached site_id simultaneously, the plan §W4
|
|
19
|
-
* explicitly accepts N first-time `secretResolver.resolve()` calls
|
|
20
|
-
* (Z.630): `op read` is idempotent + latency dominates so a
|
|
21
|
-
* hard-once Promise-cache would not materially help. The W3
|
|
22
|
-
* registry's Promise-cache handles the platform side. The last
|
|
23
|
-
* setter wins the `cache.set(id, client)` race; subsequent
|
|
24
|
-
* `resolve()` calls see a stable single instance. Identity is
|
|
25
|
-
* eventual, not instantaneous — but stable from call N+1 onwards.
|
|
26
|
-
*
|
|
27
|
-
* - **`invalidate(siteId)` for post-401 force-re-resolve.** When the
|
|
28
|
-
* auth layer detects a `401 invalid_kid`, it can drop the cached
|
|
29
|
-
* client so the next call re-fetches the bearer through `op` and
|
|
30
|
-
* constructs a fresh `RestClient`.
|
|
31
|
-
*
|
|
32
|
-
* - **Structured errors.** `NoDefaultSiteError` and `UnknownSiteError`
|
|
33
|
-
* carry `code` + (for unknown) `siteId` + `available[]` so the
|
|
34
|
-
* auth/tool layer can branch on `error.code` instead of substring
|
|
35
|
-
* matching the message.
|
|
36
|
-
*
|
|
37
|
-
* @license MIT
|
|
38
|
-
*/
|
|
39
1
|
import { RestClient } from '../client.js';
|
|
2
|
+
import { type ResolveManyRefsFn } from './op-inject.js';
|
|
40
3
|
import type { SiteRegistry, ResolvedSite } from './registry.js';
|
|
41
4
|
import type { SecretResolver } from './secret-resolver.js';
|
|
42
|
-
/**
|
|
43
|
-
* Thrown when `resolve()` is called without a `siteId` AND the
|
|
44
|
-
* registry has no default configured (neither `default_site_id` nor a
|
|
45
|
-
* flagged `is_default:true` entry). The auth layer surfaces this as a
|
|
46
|
-
* `no_default_site` MCP error with a hint to run
|
|
47
|
-
* `npx -y @wootsup/yt-builder-mcp add-site --default`.
|
|
48
|
-
*/
|
|
49
5
|
export declare class NoDefaultSiteError extends Error {
|
|
50
6
|
readonly code: "no_default_site";
|
|
51
7
|
constructor(message?: string);
|
|
52
8
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Thrown when `resolve('some-id')` cannot find `some-id` in the
|
|
55
|
-
* registry. Carries the requested `siteId` and the (insertion-order)
|
|
56
|
-
* list of configured ids so the caller can render a friendly
|
|
57
|
-
* "did-you-mean" hint.
|
|
58
|
-
*/
|
|
59
9
|
export declare class UnknownSiteError extends Error {
|
|
60
10
|
readonly siteId: string;
|
|
61
11
|
readonly available: readonly string[];
|
|
62
12
|
readonly code: "unknown_site";
|
|
63
13
|
constructor(siteId: string, available: readonly string[]);
|
|
64
14
|
}
|
|
65
|
-
/**
|
|
66
|
-
* Bundle returned by {@link ClientPool.resolve}. Carries the cached
|
|
67
|
-
* REST client together with the fully-resolved site descriptor for
|
|
68
|
-
* downstream logging / display.
|
|
69
|
-
*/
|
|
70
15
|
export interface PoolResolution {
|
|
71
16
|
readonly client: RestClient;
|
|
72
17
|
readonly site: ResolvedSite;
|
|
73
18
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Process-local cache of {@link RestClient} instances keyed by
|
|
76
|
-
* `site_id`. Constructed once at server boot (W6) and shared across
|
|
77
|
-
* all tool handlers.
|
|
78
|
-
*
|
|
79
|
-
* The pool is NOT thread-safe in the strict sense (Node is
|
|
80
|
-
* single-threaded but `await` can interleave); the cold-parallel-call
|
|
81
|
-
* behaviour is documented at the top of this file.
|
|
82
|
-
*/
|
|
83
19
|
export declare class ClientPool {
|
|
84
20
|
private readonly _registry;
|
|
85
21
|
private readonly secretResolver;
|
|
86
22
|
private readonly timeoutMs;
|
|
87
23
|
private readonly cache;
|
|
88
|
-
|
|
89
|
-
* U2 — per-site coarse token scope (`read` | `write`), learned
|
|
90
|
-
* opportunistically when a `health` / `diagnose` call observes the PHP
|
|
91
|
-
* payload's `token_scope`. The Node write-tool pre-flight reads it to fail
|
|
92
|
-
* a write FAST (no ETag fetch, no body build) when the configured key is
|
|
93
|
-
* known read-only. Absent (`undefined`) = not yet learned → the pre-flight
|
|
94
|
-
* stays silent and the REST chokepoint remains the authority.
|
|
95
|
-
*/
|
|
24
|
+
private readonly inflightClients;
|
|
96
25
|
private readonly tokenScopeCache;
|
|
97
|
-
/**
|
|
98
|
-
* Runtime active-site override (Phase 3 — `yootheme_builder_use_site`).
|
|
99
|
-
*
|
|
100
|
-
* The {@link SiteRegistry} is immutable: its `defaultSiteId()` is
|
|
101
|
-
* fixed for the process lifetime. api-mapper's parallel feature
|
|
102
|
-
* (`apimapper_use_profile`) moves a mutable active-pointer in its
|
|
103
|
-
* on-disk ProfileStore. YT Builder instead keeps the registry
|
|
104
|
-
* read-only and layers a process-local override HERE: when set,
|
|
105
|
-
* `resolve(undefined)` targets this id BEFORE consulting
|
|
106
|
-
* `registry.defaultSiteId()`. An explicit `site_id` argument to
|
|
107
|
-
* `resolve()` always wins over the override.
|
|
108
|
-
*
|
|
109
|
-
* `null` = no override (registry default in effect).
|
|
110
|
-
*/
|
|
111
26
|
private activeOverride;
|
|
112
|
-
/**
|
|
113
|
-
* Corporate extra headers (customer gap #14) attached to EVERY client this
|
|
114
|
-
* pool constructs. Parsed once from `YTB_MCP_EXTRA_HEADERS` (default) or
|
|
115
|
-
* injected by a caller/test. Bearer always wins on collision (enforced in
|
|
116
|
-
* {@link RestClient}).
|
|
117
|
-
*/
|
|
118
27
|
private readonly extraHeaders;
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
* Orthogonal to the Bearer: it rides URL userinfo, never the Authorization
|
|
125
|
-
* header (enforced in {@link RestClient}).
|
|
126
|
-
*/
|
|
127
|
-
private readonly siteBasicUserinfo;
|
|
128
|
-
constructor(_registry: SiteRegistry, secretResolver: SecretResolver, timeoutMs?: number, extraHeaders?: Record<string, string>, siteBasicUserinfo?: string | null);
|
|
129
|
-
/**
|
|
130
|
-
* The current runtime active-site override, or `null` when none is
|
|
131
|
-
* set (the registry default is in effect). Read-only peek — does not
|
|
132
|
-
* resolve a client or hit the network.
|
|
133
|
-
*/
|
|
28
|
+
private readonly siteBasicHeader;
|
|
29
|
+
private readonly resolveManyRefs;
|
|
30
|
+
private bundlePromise;
|
|
31
|
+
constructor(_registry: SiteRegistry, secretResolver: SecretResolver, timeoutMs?: number, extraHeaders?: Record<string, string>, siteBasicHeader?: string | null, resolveManyRefs?: ResolveManyRefsFn);
|
|
32
|
+
configuredTimeoutMs(): number;
|
|
134
33
|
activeSiteId(): string | null;
|
|
135
|
-
/**
|
|
136
|
-
* Set (or clear) the runtime active-site override.
|
|
137
|
-
*
|
|
138
|
-
* Passing a `site_id` makes every subsequent `resolve(undefined)`
|
|
139
|
-
* target that site. Passing `null` clears the override so the
|
|
140
|
-
* registry default applies again.
|
|
141
|
-
*
|
|
142
|
-
* @throws {UnknownSiteError} when `siteId` is not in the registry —
|
|
143
|
-
* the pointer is left UNCHANGED on a bad switch so a typo never
|
|
144
|
-
* silently strands the session on a non-existent site.
|
|
145
|
-
*/
|
|
146
34
|
setActiveSite(siteId: string | null): void;
|
|
147
|
-
/**
|
|
148
|
-
* Read-only accessor for the underlying {@link SiteRegistry}. Used
|
|
149
|
-
* internally by the W7 `buildSitesTools(pool)` aggregator so the
|
|
150
|
-
* `sites_list` tool can render the configured-sites table without
|
|
151
|
-
* requiring callers to thread the registry separately. The registry
|
|
152
|
-
* itself is immutable from the outside (no mutator surface) so
|
|
153
|
-
* exposing it here is safe — `listForDisplay()` / `defaultSiteId()` /
|
|
154
|
-
* `listIds()` are all read-only operations.
|
|
155
|
-
*
|
|
156
|
-
* @internal Internal accessor for buildSitesTools; do not consume
|
|
157
|
-
* from tool handlers. Handlers should call `pool.resolve(siteId)`
|
|
158
|
-
* to get a `{client, site}` bundle instead.
|
|
159
|
-
*/
|
|
160
35
|
get registry(): SiteRegistry;
|
|
161
|
-
/**
|
|
162
|
-
* Resolve a site_id to its cached {@link RestClient} + descriptor.
|
|
163
|
-
*
|
|
164
|
-
* @param siteId Explicit site_id from the tool param. When
|
|
165
|
-
* `undefined`, the registry's `defaultSiteId()` is used.
|
|
166
|
-
* @throws {NoDefaultSiteError} when `siteId` is omitted and no
|
|
167
|
-
* default is configured.
|
|
168
|
-
* @throws {UnknownSiteError} when the resolved id is not in the
|
|
169
|
-
* registry (either the explicit id is wrong, or the registry's
|
|
170
|
-
* `default_site_id` points at a stale entry).
|
|
171
|
-
*/
|
|
172
36
|
resolve(siteId?: string): Promise<PoolResolution>;
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
*/
|
|
37
|
+
private buildClient;
|
|
38
|
+
private resolveBearer;
|
|
39
|
+
private ensureBundle;
|
|
40
|
+
private collectAllOpRefs;
|
|
178
41
|
setTokenScope(siteId: string, scope: 'read' | 'write'): void;
|
|
179
|
-
/**
|
|
180
|
-
* U2 — the last-known coarse token scope for a site, or `undefined` when
|
|
181
|
-
* none has been observed yet. The write-tool pre-flight ONLY fails fast on
|
|
182
|
-
* a known `read`; an `undefined` scope means "not learned" and never blocks
|
|
183
|
-
* (the REST chokepoint stays the source of truth).
|
|
184
|
-
*/
|
|
185
42
|
tokenScope(siteId: string): 'read' | 'write' | undefined;
|
|
186
|
-
/**
|
|
187
|
-
* Drop the cached client for `siteId` — used by the auth layer
|
|
188
|
-
* after a `401 invalid_kid` so the next call re-runs the bearer
|
|
189
|
-
* resolve and builds a fresh {@link RestClient}.
|
|
190
|
-
*
|
|
191
|
-
* Also drops the learned token scope: a re-resolve may mint against a
|
|
192
|
-
* different key, so a stale read/write verdict must not survive.
|
|
193
|
-
*
|
|
194
|
-
* No-op when `siteId` is not in the cache.
|
|
195
|
-
*/
|
|
196
43
|
invalidate(siteId: string): void;
|
|
197
44
|
}
|
|
198
45
|
//# sourceMappingURL=client-pool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-pool.d.ts","sourceRoot":"","sources":["../../src/sites/client-pool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client-pool.d.ts","sourceRoot":"","sources":["../../src/sites/client-pool.ts"],"names":[],"mappings":"AAgEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,EAAe,KAAK,iBAAiB,EAA0B,MAAM,gBAAgB,CAAC;AAC7F,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAS3E,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,SAAgB,IAAI,EAAG,iBAAiB,CAAU;gBAG9C,OAAO,SAG6E;CAK3F;AAQD,qBAAa,gBAAiB,SAAQ,KAAK;aAInB,MAAM,EAAE,MAAM;aACd,SAAS,EAAE,SAAS,MAAM,EAAE;IAJhD,SAAgB,IAAI,EAAG,cAAc,CAAU;gBAG3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,MAAM,EAAE;CAQnD;AAOD,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC/B;AAWD,qBAAa,UAAU;IAmFf,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAmB/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAtG9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IAcvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAU1E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;IAgBvE,OAAO,CAAC,cAAc,CAAuB;IAQ7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IAUtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgB;IAYhD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;IASpD,OAAO,CAAC,aAAa,CAA2C;gBAG3C,SAAS,EAAE,YAAY,EACvB,cAAc,EAAE,cAAc,EAmB9B,SAAS,GAAE,MAA2B,EACvD,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAA+B,EAClE,eAAe,GAAE,MAAM,GAAG,IAAkC,EAW5D,eAAe,GAAE,iBAA+B;IAcpD,mBAAmB,IAAI,MAAM;IAS7B,YAAY,IAAI,MAAM,GAAG,IAAI;IAe7B,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAwB1C,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAaK,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YAkFzC,WAAW;YAmCX,aAAa;IA4B3B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,gBAAgB;IAgBxB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAU5D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS;IA2CxD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAKnC"}
|