The plugin’s options are validated by Zod at construction time — invalid input throws synchronously rather than crashing later inside the bundle source. The full schema lives inDocumentation Index
Fetch the complete documentation index at: https://docs.agentfront.dev/llms.txt
Use this file to discover all available pages before exploring further.
src/skilled-openapi.types.ts and is exported as skilledOpenApiPluginOptionsSchema for downstream tooling.
Top-level shape
All options
| Option | Type | Default | Notes |
|---|---|---|---|
source | BundleSourceOptions | (required) | One of static, npm, saas — see Sources |
requireSignature | boolean | true | Bundle must carry a verifiable integrity envelope. Default safe; never set false in production |
trustedKeys | SignatureKey[] | [] | Public keys for signature verification. At least one is mandatory when requireSignature: true |
dev | boolean | false | Bypasses signature verification and allows http://. Loud startup warning when true. Never in production |
outbound.allowPrivateNetworks | boolean | false | Bypass post-DNS IP blocklist. Set true only for self-hosted on a private network |
outbound.allowHttp | boolean | false | Allow http:// upstreams (for local dev) |
outbound.maxConcurrencyPerHost | number | 10 | Per-host concurrent HTTP request cap |
outbound.defaultTimeoutMs | number | 30_000 | Default per-op timeout. Override per-op via OperationDescriptor.timeoutMs |
outbound.defaultMaxResponseBytes | number | 262_144 (256KB) | Default response size cap. Override per-op via OperationDescriptor.maxResponseBytes |
outbound.egressProxy | string | undefined | Optional egress proxy URL (planned v1.2.x; honors HTTPS_PROXY env when set) |
sourceConflictPolicy | 'static-wins'|'last-wins'|'reject' | 'static-wins' | Policy for when multiple sources register the same bundleId |
bundleCacheDir | string | .frontmcp/skilled-openapi | Where the SaaS source caches the last-good bundle |
credentials | Record<string,string> | undefined | In-memory credential map keyed by vaultRef. For dev / single-tenant only — production should override the SkilledOpenApiCredentialResolver provider with a libs/auth-vault-backed resolver |
exposeOperationsAsInternalTools | boolean | true | Register each bundle operation as an internal SDK tool (visibility: internal) so other tools / agents / CodeCall scripts / jobs can compose with it via this.callTool('<bundleId>.<operationId>', args). Internal tools are excluded from tools/list and rejected for external tools/call requests. Disable for very large bundles where the additional registry pressure outweighs the composition convenience, or when the three meta-tools are sufficient |
SignatureKey shape
keyId. Rotate by adding the new key first, leaving the old key, distributing bundles signed with the new key, then dropping the old key once no in-flight bundles depend on it.
Recommended env wiring
A minimal production wiring uses environment variables for secrets and trusted keys:SkilledOpenApiCredentialResolver DI token with a vault-backed implementation rather than using the in-memory credentials option:
VaultBridgePlugin AFTER SkilledOpenApiPlugin so the override wins.
Reading current config at runtime
The parsed plugin options are available via theSkilledOpenApiConfig DI token:
Validation surface
Every option is validated at construction time. Examples:- Missing
source→ZodError: Required at "source" - Malformed
saas.endpointURL →ZodError: Invalid url at "source.endpoint" - Unknown
outbound.maxConcurrencyPerHost: 0→ZodError: Number must be greater than 0