@redocly/redoc-reef 0.140.0-next.6 → 0.140.0-next.7
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/CHANGELOG.md +42 -0
- package/dist/api-schemas/mcp-fetch-count.d.ts +2 -18
- package/dist/api-schemas/otel-traces.d.ts +7 -1345
- package/dist/api-schemas/otel-traces.js +1 -1
- package/dist/api-schemas/search-facets.d.ts +3 -31
- package/dist/api-schemas/search.d.ts +6 -52
- package/dist/cli/build/index.js +1 -1
- package/dist/cli/eject/resolveEjectParams.js +1 -1
- package/dist/client/app/markdoc/custom-components/openapi/openapi-code-sample.d.ts +2 -0
- package/dist/client/app/markdoc/custom-components/openapi/openapi-code-sample.js +1 -1
- package/dist/compiled/@redocly/pii/index.mjs +1 -0
- package/dist/compiled/@redocly/pii/package.json +1 -1
- package/dist/markdoc/tags/openapi-code-sample.js +1 -1
- package/dist/server/api-routes/execute-api-route.js +1 -1
- package/dist/server/api-routes/run-api-routes-worker.js +1 -1
- package/dist/server/config/env-config.d.ts +24 -24
- package/dist/server/config/env-schema.d.ts +83 -326
- package/dist/server/config/env-schemas/api-urls.d.ts +2 -14
- package/dist/server/config/env-schemas/auth.d.ts +10 -32
- package/dist/server/config/env-schemas/catalog.d.ts +6 -9
- package/dist/server/config/env-schemas/database.d.ts +2 -8
- package/dist/server/config/env-schemas/environment-detection.d.ts +20 -18
- package/dist/server/config/env-schemas/feature-flags.d.ts +25 -33
- package/dist/server/config/env-schemas/organization-project.d.ts +3 -21
- package/dist/server/config/env-schemas/scorecards.d.ts +2 -6
- package/dist/server/config/env-schemas/search.d.ts +9 -15
- package/dist/server/config/env-schemas/server-config.d.ts +6 -31
- package/dist/server/config/env-schemas/site.d.ts +1 -5
- package/dist/server/config/env-schemas/ssr.d.ts +7 -12
- package/dist/server/config/env-schemas/telemetry.d.ts +1 -7
- package/dist/server/esbuild/plugins/themes-resolver.js +3 -3
- package/dist/server/external-plugins/resolve-external-plugins.js +1 -1
- package/dist/server/node-bundle-entry.js +1 -1
- package/dist/server/plugins/api-docs/index.js +1 -1
- package/dist/server/plugins/api-docs/spec-download.api.js +1 -1
- package/dist/server/plugins/api-docs/store-definition-bundles.d.ts +6 -0
- package/dist/server/plugins/api-docs/store-definition-bundles.js +1 -1
- package/dist/server/plugins/config-parser/index.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-openapi-code-samples.js +1 -1
- package/dist/server/plugins/mcp/codemode/tools/describe-tools.d.ts +1 -1
- package/dist/server/plugins/mcp/codemode/tools/describe-tools.js +1 -3
- package/dist/server/plugins/mcp/handlers/docs-mcp-handler.js +1 -1
- package/dist/server/plugins/mcp/handlers/handle-mcp-request.js +1 -1
- package/dist/server/plugins/mcp/servers/docs-server.js +1 -1
- package/dist/server/plugins/mcp/servers/mcp-server.js +2 -2
- package/dist/server/plugins/mcp/types.d.ts +10 -0
- package/dist/server/plugins/mcp/utils/available-tools.d.ts +5 -0
- package/dist/server/plugins/mcp/utils/available-tools.js +1 -0
- package/dist/server/plugins/mcp/workers/worker-context.d.ts +4 -0
- package/dist/server/plugins/mcp/workers/worker-context.js +1 -0
- package/dist/server/plugins/scorecard-classic/template/Grid/GridHeader.js +3 -3
- package/dist/server/store-config.d.ts +33 -0
- package/dist/server/store-config.js +1 -0
- package/dist/server/store.d.ts +10 -15
- package/dist/server/store.js +1 -1
- package/dist/server/tools/notifiers/formatter.js +1 -1
- package/dist/server/types/plugins/api-routes.d.ts +4 -1
- package/dist/server/utils/envs/env-boolean-string.d.ts +9 -3
- package/dist/server/utils/envs/get-api-route-allowed-env-variables.d.ts +2 -0
- package/dist/server/utils/envs/get-api-route-allowed-env-variables.js +1 -1
- package/dist/server/utils/envs/interpolate-env-variables.d.ts +5 -1
- package/dist/server/utils/envs/interpolate-env-variables.js +1 -1
- package/dist/server/utils/envs/replace-env-variables-deep.d.ts +17 -9
- package/dist/server/utils/envs/replace-env-variables-deep.js +1 -1
- package/dist/server/web-server/middleware/jsonValidatorMiddleware.d.ts +556 -287
- package/dist/server/workers/mcp-tool-worker-methods.d.ts +7 -0
- package/dist/server/workers/mcp-tool-worker-methods.js +1 -0
- package/dist/server/workers/mcp-tool-worker-pool.d.ts +0 -1
- package/dist/server/workers/mcp-tool-worker-pool.js +1 -1
- package/dist/server/workers/mcp-tool-worker.js +1 -1
- package/dist/server/workers/types.d.ts +4 -8
- package/dist/server/workers/worker-config.d.ts +33 -0
- package/dist/server/workers/worker-config.js +1 -0
- package/package.json +8 -8
- package/dist/compiled/@redocly/pii/index.js +0 -1
- package/dist/server/plugins/mcp/utils/available-sandbox-tools.d.ts +0 -4
- package/dist/server/plugins/mcp/utils/available-sandbox-tools.js +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WorkerParams } from './types.js';
|
|
2
|
+
import { MCP_TOOL_AVAILABILITY_KEY, MCP_TOOL_WORKER_KEY } from './mcp-tool-worker-pool.js';
|
|
3
|
+
export declare const mcpToolWorkerMethods: {
|
|
4
|
+
executeMcpTool: (params: WorkerParams<typeof MCP_TOOL_WORKER_KEY>[0]) => Promise<import("../plugins/mcp/types.js").McpToolWorkerResponse>;
|
|
5
|
+
mcpToolAvailability: (params: WorkerParams<typeof MCP_TOOL_AVAILABILITY_KEY>[0]) => Promise<Record<string, boolean>>;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=mcp-tool-worker-methods.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{executeMcpTool as e,mcpToolAvailability as r}from"../plugins/mcp/workers/execute-mcp-tool.js";import{fromWorkerContext as t}from"../plugins/mcp/workers/worker-context.js";import{MCP_TOOL_AVAILABILITY_KEY as c,MCP_TOOL_WORKER_KEY as m}from"./mcp-tool-worker-pool.js";const T={[m]:o=>e({...o,context:t(o.context)}),[c]:o=>r({...o,context:t(o.context)})};export{T as mcpToolWorkerMethods};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { WorkerPool } from './worker-pool.js';
|
|
2
2
|
export declare const MCP_TOOL_WORKER_KEY = "executeMcpTool";
|
|
3
|
-
export declare const MCP_TOOL_IS_AVAILABLE_KEY = "isMcpToolAvailable";
|
|
4
3
|
export declare const MCP_TOOL_AVAILABILITY_KEY = "mcpToolAvailability";
|
|
5
4
|
export declare const mcpToolWorkers: WorkerPool;
|
|
6
5
|
//# sourceMappingURL=mcp-tool-worker-pool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getAllowedEnvs as o}from"../utils/envs/get-api-route-allowed-env-variables.js";import{WorkerPool as r}from"./worker-pool.js";const p="executeMcpTool",
|
|
1
|
+
import{getAllowedEnvs as o}from"../utils/envs/get-api-route-allowed-env-variables.js";import{WorkerPool as r}from"./worker-pool.js";const p="executeMcpTool",c="mcpToolAvailability",e=5,l=new r({workerScript:"./mcp-tool-worker",minWorkers:1,maxWorkers:e,workerType:"process",forkOpts:{stdio:"inherit"},resolveForkEnv:o,lazy:!0,sandbox:!0});export{c as MCP_TOOL_AVAILABILITY_KEY,p as MCP_TOOL_WORKER_KEY,l as mcpToolWorkers};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import o from"workerpool";import{
|
|
1
|
+
import o from"workerpool";import{mcpToolWorkerMethods as r}from"./mcp-tool-worker-methods.js";o.worker(r);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { ApiRoutesWorkerParams, ApiRoutesWorkerResponse } from '../types/plugins/api-routes.js';
|
|
2
2
|
import type { RenderPayload } from '../../types/ssr.js';
|
|
3
3
|
import type { ScorecardsWorkerParams, ScorecardsWorkerResponse } from '../types/plugins/scorecards.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { McpToolWorkerContext, McpToolWorkerParams, McpToolWorkerResponse } from '../plugins/mcp/types.js';
|
|
5
5
|
import type { SCORECARDS_WORKER_KEY } from './scorecards-worker-pool.js';
|
|
6
6
|
import type { API_ROUTES_WORKER_KEY } from './api-routes-worker-pool.js';
|
|
7
7
|
import type { SSR_WORKER_KEY } from './ssr-worker-pool.js';
|
|
8
|
-
import type { MCP_TOOL_AVAILABILITY_KEY,
|
|
8
|
+
import type { MCP_TOOL_AVAILABILITY_KEY, MCP_TOOL_WORKER_KEY } from './mcp-tool-worker-pool.js';
|
|
9
9
|
export type SsrWorkerResponse = {
|
|
10
10
|
html: string;
|
|
11
11
|
statusCode: 200 | 500;
|
|
@@ -25,17 +25,13 @@ export type WorkerTypeMapping = {
|
|
|
25
25
|
response: ScorecardsWorkerResponse;
|
|
26
26
|
};
|
|
27
27
|
[MCP_TOOL_WORKER_KEY]: {
|
|
28
|
-
params: [
|
|
28
|
+
params: [McpToolWorkerParams];
|
|
29
29
|
response: McpToolWorkerResponse;
|
|
30
30
|
};
|
|
31
|
-
[MCP_TOOL_IS_AVAILABLE_KEY]: {
|
|
32
|
-
params: [Omit<McpToolExecutionParams, 'args' | 'extra'>];
|
|
33
|
-
response: boolean;
|
|
34
|
-
};
|
|
35
31
|
[MCP_TOOL_AVAILABILITY_KEY]: {
|
|
36
32
|
params: [{
|
|
37
33
|
toolNames: string[];
|
|
38
|
-
context:
|
|
34
|
+
context: McpToolWorkerContext;
|
|
39
35
|
}];
|
|
40
36
|
response: Record<string, boolean>;
|
|
41
37
|
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { RedoclyConfig } from '@redocly/config';
|
|
2
|
+
type ConfigFileRef = {
|
|
3
|
+
path: string;
|
|
4
|
+
env: Record<string, string>;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* The store config file of a build output, and the env values that resolve its placeholders in a
|
|
8
|
+
* worker. `env` has no variable that the worker env excludes: those placeholders stay unresolved.
|
|
9
|
+
* Main process only: `config` is the store config that was loaded from the file.
|
|
10
|
+
*/
|
|
11
|
+
export type StoreConfigFile = ConfigFileRef & {
|
|
12
|
+
config: RedoclyConfig;
|
|
13
|
+
};
|
|
14
|
+
/** The config as it crosses to a worker: the config file entries, overridden by `entries`. */
|
|
15
|
+
export type WorkerConfig = {
|
|
16
|
+
file: ConfigFileRef;
|
|
17
|
+
entries: Partial<RedoclyConfig>;
|
|
18
|
+
} | {
|
|
19
|
+
file?: undefined;
|
|
20
|
+
entries: RedoclyConfig;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Sends only the top-level entries of `config` that are not the same values as in the config file.
|
|
24
|
+
* Without a config file (`develop`), sends all of `config`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function toWorkerConfig(config: RedoclyConfig, configFile: StoreConfigFile | undefined): WorkerConfig;
|
|
27
|
+
/**
|
|
28
|
+
* Worker side. Returns a config that the call owns: a change to it, at any depth, is not seen by
|
|
29
|
+
* other calls. Throws when the config file cannot be read.
|
|
30
|
+
*/
|
|
31
|
+
export declare function readWorkerConfig(workerConfig: WorkerConfig): RedoclyConfig;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=worker-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{readFileSync as a}from"node:fs";import{MARKDOC_PARTIALS_DATA_KEY as f}from"../constants/common.js";import{resolveStoreConfig as l}from"../store-config.js";let s;function m(n,e){if(!e)return{entries:n};const o=e.config;return{file:{path:e.path,env:e.env},entries:Object.fromEntries(Object.entries(n).filter(([t,r])=>o[t]!==r))}}function j(n){const{file:e,entries:o}=n;if(!e)return o;const t=d(e),r=Object.fromEntries(Object.keys(t).map(i=>[i,()=>structuredClone(t[i])]));return r[f]=()=>u(e)[f],O(r,o)}function d(n){const e=JSON.stringify([n.path,n.env]);if(s?.key!==e){const{[f]:o,...t}=u(n);s={key:e,config:t}}return s.config}function u({path:n,env:e}){let o;try{o=JSON.parse(a(n,"utf8"))}catch(t){throw new Error(`Could not read the store config file "${n}": ${String(t)}`)}return l(o,t=>e[t]).config}function O(n,e){const o={},t=(r,i)=>{Object.defineProperty(o,r,{value:i,writable:!0,enumerable:!0,configurable:!0})};for(const[r,i]of Object.entries(n)){if(Object.hasOwn(e,r)){t(r,e[r]);continue}Object.defineProperty(o,r,{enumerable:!0,configurable:!0,get:()=>{const c=i();return t(r,c),c},set:c=>t(r,c)})}for(const[r,i]of Object.entries(e))Object.hasOwn(o,r)||t(r,i);return o}export{j as readWorkerConfig,m as toWorkerConfig};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/redoc-reef",
|
|
3
|
-
"version": "0.140.0-next.
|
|
3
|
+
"version": "0.140.0-next.7",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"@jitl/quickjs-singlefile-mjs-release-sync": "0.32.0",
|
|
22
22
|
"@libsql/client": "0.17.3",
|
|
23
23
|
"@markdoc/markdoc": "npm:@redocly/markdoc@0.7.0-beta.2",
|
|
24
|
-
"@modelcontextprotocol/server": "2.
|
|
24
|
+
"@modelcontextprotocol/server": "2.3.1",
|
|
25
25
|
"@opentelemetry/api": "1.9.1",
|
|
26
26
|
"@opentelemetry/context-zone": "2.0.1",
|
|
27
27
|
"@opentelemetry/core": "2.8.0",
|
|
@@ -33,14 +33,14 @@
|
|
|
33
33
|
"@opentelemetry/sdk-trace-web": "2.8.0",
|
|
34
34
|
"@opentelemetry/semantic-conventions": "1.40.0",
|
|
35
35
|
"@redocly/ajv": "8.18.0",
|
|
36
|
-
"@redocly/api-docs": "0.5.0-next.
|
|
37
|
-
"@redocly/config": "0.
|
|
36
|
+
"@redocly/api-docs": "0.5.0-next.5",
|
|
37
|
+
"@redocly/config": "0.69.0",
|
|
38
38
|
"@redocly/markdoc": "0.7.0-beta.2",
|
|
39
|
-
"@redocly/openapi-core": "2.
|
|
39
|
+
"@redocly/openapi-core": "2.72.1",
|
|
40
40
|
"@redocly/portal-legacy-ui": "0.19.0",
|
|
41
|
-
"@redocly/portal-plugin-mock-server": "0.25.0-next.
|
|
41
|
+
"@redocly/portal-plugin-mock-server": "0.25.0-next.2",
|
|
42
42
|
"@redocly/realm-asyncapi-sdk": "0.17.0",
|
|
43
|
-
"@redocly/theme": "0.72.0-next.
|
|
43
|
+
"@redocly/theme": "0.72.0-next.4",
|
|
44
44
|
"@shikijs/transformers": "3.21.0",
|
|
45
45
|
"@tanstack/react-query": "5.62.3",
|
|
46
46
|
"@tanstack/react-table": "8.21.3",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"xml-crypto": "6.1.0",
|
|
99
99
|
"xpath": "0.0.34",
|
|
100
100
|
"yaml-ast-parser": "0.0.43",
|
|
101
|
-
"zod": "^
|
|
101
|
+
"zod": "^4.6.6"
|
|
102
102
|
},
|
|
103
103
|
"peerDependencies": {
|
|
104
104
|
"react": "^19.2.7",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var v=(i,l)=>()=>{try{return l||i((l={exports:{}}).exports,l),l.exports}catch(c){throw l=0,c}},g=v(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.maskSubject=i.maskEmail=void 0;var l=t=>{if(!t||typeof t!="string"||!t.includes("@"))return t;let[e="",r]=t.split("@");return`${e.length>2?e.slice(0,2)+"*".repeat(e.length-2):"*".repeat(e.length)}@${r}`};i.maskEmail=l;var c=/[a-zA-Z0-9._%+-]/,b=/^[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/,s=t=>{var e;let r="",a=0,n=0;for(;n<t.length;){let d=t.indexOf("@",n);if(d===-1)break;let o=d;for(;o>a&&c.test(t.charAt(o-1));)o--;let p=o<d?(e=b.exec(t.slice(d+1)))===null||e===void 0?void 0:e[0]:void 0;if(!p){n=d+1;continue}let m=d+1+p.length;r+=t.slice(a,o)+(0,i.maskEmail)(t.slice(o,m)),a=m,n=m}return r+t.slice(a)};i.maskSubject=s}),h=v(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.removePii=s,i.removePiiFromUrl=t;var l={email:{pattern:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,replacement:"[email_removed]"},phone:{pattern:/(?:\+?1[-.\s]?)?\(?([0-9]{3})\)?[-.\s]?([0-9]{3})[-.\s]?([0-9]{4})(?:\s?(?:ext|x|extension)\.?\s?(\d+))?/g,replacement:"[phone_removed]"},ssn:{pattern:/\b(?!000|666|9\d{2})\d{3}-?(?!00)\d{2}-?(?!0000)\d{4}\b/g,replacement:"[SSN_removed]"},creditCard:{pattern:/\b\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}\b/g,replacement:"[credit_card_removed]"},address:{pattern:/\b\d+\s[A-Za-z0-9\s,.-]+(?:Street|St|Avenue|Ave|Road|Rd|Boulevard|Blvd|Lane|Ln|Drive|Dr|Court|Ct|Circle|Cir|Way|Place|Pl|Parkway|Pkwy|Terrace|Ter)\b/gi,replacement:"[address_removed]"},passport:{pattern:/\b[A-Z]{2}[0-9]{7}\b/g,replacement:"[passport_number_removed]"},driversLicense:{pattern:/\b[A-Z]{1,2}[0-9]{6,9}\b/g,replacement:"[driver_license_removed]"},zipCode:{pattern:/(?<!\d-)\b\d{5}(?:-\d{4})?\b(?!-\d)/g,replacement:"[zip_code_removed]"},bankAccount:{pattern:/\b\d{8,17}\b/g,replacement:"[bank_account_removed]"},dateOfBirth:{pattern:/\b(?:0[1-9]|1[0-2])[-/](?:0[1-9]|[12][0-9]|3[01])[-/](?:19|20)\d{2}\b/g,replacement:"[date_removed]"}};function c(e){return typeof e=="string"}function b(e={}){let r={email:{enabled:!0,replacement:"[email_removed]"},phone:{enabled:!0,replacement:"[phone_removed]"},ssn:{enabled:!0,replacement:"[SSN_removed]"},creditCard:{enabled:!0,replacement:"[credit_card_removed]"},address:{enabled:!0,replacement:"[address_removed]"},passport:{enabled:!0,replacement:"[passport_number_removed]"},driversLicense:{enabled:!0,replacement:"[driver_license_removed]"},zipCode:{enabled:!0,replacement:"[zip_code_removed]"},bankAccount:{enabled:!0,replacement:"[bank_account_removed]"},dateOfBirth:{enabled:!0,replacement:"[date_removed]"}};for(let[a,n]of Object.entries(e))r[a]?r[a]=Object.assign(Object.assign({},r[a]),n):r[a]=n;return r}function s(e,r={}){if(!c(e))return e;let a=b(r),n=e;for(let[d,o]of Object.entries(a)){if(!o.enabled)continue;let p=l[d],m=p?.pattern||o.pattern,f=o.replacement||p?.replacement||"[PII removed]";m&&(n=n.replace(m,f))}return n}function t(e){if(!c(e))return e;try{let r=new URL(e,"http://example.com");for(let[a,n]of r.searchParams.entries()){let d=String(s(n));r.searchParams.set(a,d)}return e.startsWith("http://")||e.startsWith("https://")?r.toString():r.pathname+r.search+r.hash}catch{return String(s(e))}}});Object.defineProperty(exports,"__esModule",{value:!0}),exports.removePiiFromUrl=exports.removePii=exports.maskSubject=exports.maskEmail=void 0;var u=g();Object.defineProperty(exports,"maskEmail",{enumerable:!0,get:function(){return u.maskEmail}}),Object.defineProperty(exports,"maskSubject",{enumerable:!0,get:function(){return u.maskSubject}});var _=h();Object.defineProperty(exports,"removePii",{enumerable:!0,get:function(){return _.removePii}}),Object.defineProperty(exports,"removePiiFromUrl",{enumerable:!0,get:function(){return _.removePiiFromUrl}});
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { McpToolSchema } from '../../../types';
|
|
2
|
-
import type { McpToolContext } from '../types.js';
|
|
3
|
-
export declare function availableSandboxTools(candidates: McpToolSchema[], context: McpToolContext): Promise<McpToolSchema[]>;
|
|
4
|
-
//# sourceMappingURL=available-sandbox-tools.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{logger as a}from"../../../tools/notifiers/logger.js";import{mcpToolWorkers as n,MCP_TOOL_AVAILABILITY_KEY as m}from"../../../workers/mcp-tool-worker-pool.js";async function p(t,l){if(t.length===0)return t;const e=t.map(o=>o.name);let r;try{r=await n.exec(m,[{toolNames:e,context:l}],{timeout:1e4})}catch(o){return i(t,o instanceof Error?o.message:String(o))}return!r||typeof r!="object"?i(t,"the worker returned no availability map"):t.filter(o=>r[o.name]!==!1)}function i(t,l){const e=t.filter(r=>r.hasAvailabilityGate);return e.length===0?t:(a.warn(`MCP tool availability is unknown (${l}); the sandbox tool list drops the gated tools: ${e.map(r=>r.name).join(", ")}.`),t.filter(r=>!r.hasAvailabilityGate))}export{p as availableSandboxTools};
|