@frontmcp/plugin-skilled-openapi 1.5.7 → 1.6.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 +26 -25
- package/esm/package.json +5 -5
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -24,8 +24,9 @@ Register the plugin with `SkilledOpenApiPlugin.init(...)` and point it at a bund
|
|
|
24
24
|
|
|
25
25
|
```typescript
|
|
26
26
|
import * as path from 'node:path';
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
import SkilledOpenApiPlugin from '@frontmcp/plugin-skilled-openapi';
|
|
29
|
+
import { FrontMcp, LogLevel } from '@frontmcp/sdk';
|
|
29
30
|
|
|
30
31
|
@FrontMcp({
|
|
31
32
|
info: { name: 'Skilled-OpenAPI Demo', version: '0.1.0' },
|
|
@@ -74,10 +75,10 @@ OpenAPI spec --(analyzer + optional signing)--> bundle (spec + overlay)
|
|
|
74
75
|
|
|
75
76
|
## Meta-Tools
|
|
76
77
|
|
|
77
|
-
| Tool
|
|
78
|
-
|
|
|
79
|
-
| `search_skill` | Semantic search over the loaded skills; returns matching `skillId`s with scores. The live skill catalog is injected into the tool description so the model can discover what's available.
|
|
80
|
-
| `load_skill`
|
|
78
|
+
| Tool | Purpose |
|
|
79
|
+
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
80
|
+
| `search_skill` | Semantic search over the loaded skills; returns matching `skillId`s with scores. The live skill catalog is injected into the tool description so the model can discover what's available. |
|
|
81
|
+
| `load_skill` | Returns a skill's markdown instructions plus its `actions[]` and their JSON Schemas (the `actionId`s a workflow calls). |
|
|
81
82
|
| `run_workflow` | Runs an AgentScript `script` in the enclave sandbox. Each `await callTool(actionId, input)` invokes a loaded operation through the full authorize → validate → HTTPS → validate path; the script's `return` value is surfaced as the result. |
|
|
82
83
|
|
|
83
84
|
## Features
|
|
@@ -93,28 +94,28 @@ OpenAPI spec --(analyzer + optional signing)--> bundle (spec + overlay)
|
|
|
93
94
|
|
|
94
95
|
All options are validated by a strict Zod schema (`skilledOpenApiPluginOptionsSchema`).
|
|
95
96
|
|
|
96
|
-
| Option
|
|
97
|
-
|
|
|
98
|
-
| `source`
|
|
99
|
-
| `requireSignature`
|
|
100
|
-
| `trustedKeys`
|
|
101
|
-
| `dev`
|
|
102
|
-
| `outbound`
|
|
103
|
-
| `unprotectedOps`
|
|
104
|
-
| `sourceConflictPolicy`
|
|
105
|
-
| `bundleCacheDir`
|
|
106
|
-
| `credentials`
|
|
107
|
-
| `exposeOperationsAsInternalTools` | `boolean`
|
|
97
|
+
| Option | Type | Default | Description |
|
|
98
|
+
| --------------------------------- | ------------------------------------------ | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
99
|
+
| `source` | `static \| npm \| saas \| inline` | — (required) | Where bundles come from. `{ type: 'static', path, watch? }`, `{ type: 'npm', package }`, `{ type: 'saas', endpoint, ... }`, or `{ type: 'inline', ... }`. |
|
|
100
|
+
| `requireSignature` | `boolean` | `true` | Require a valid bundle signature (RS256/Ed25519 JWT-of-hashes). Opt out only with `dev: true`. |
|
|
101
|
+
| `trustedKeys` | `SignatureKey[]` | `[]` | Public keys trusted to sign bundles. |
|
|
102
|
+
| `dev` | `boolean` | `false` | Local-dev escape hatch: bypasses signing and widens `outbound` to allow `http://`. **Never enable in production.** |
|
|
103
|
+
| `outbound` | `OutboundOptions` | see below | SSRF / egress controls. |
|
|
104
|
+
| `unprotectedOps` | `'allow' \| 'deny'` | `'allow'` | Default-deny policy for operations that declare no required authorities. |
|
|
105
|
+
| `sourceConflictPolicy` | `'static-wins' \| 'last-wins' \| 'reject'` | `'static-wins'` | How to resolve two sources registering the same skill id. |
|
|
106
|
+
| `bundleCacheDir` | `string` | — | Last-good cache directory (only for `source.type === 'saas'`). |
|
|
107
|
+
| `credentials` | `Record<vaultRef, secret>` | — | In-memory credential map for dev / single-tenant. In production resolve via `@frontmcp/auth`'s vault. |
|
|
108
|
+
| `exposeOperationsAsInternalTools` | `boolean` | `true` | Keep operations reachable via `callTool` inside workflows. |
|
|
108
109
|
|
|
109
110
|
`outbound` (SSRF + egress):
|
|
110
111
|
|
|
111
|
-
| Field
|
|
112
|
-
|
|
|
113
|
-
| `allowPrivateNetworks`
|
|
114
|
-
| `allowHttp`
|
|
115
|
-
| `maxConcurrencyPerHost`
|
|
116
|
-
| `defaultTimeoutMs`
|
|
117
|
-
| `defaultMaxResponseBytes` | `262144` | Per-response size cap.
|
|
112
|
+
| Field | Default | Description |
|
|
113
|
+
| ------------------------- | -------- | -------------------------------------------------------- |
|
|
114
|
+
| `allowPrivateNetworks` | `false` | Allow connections to private/loopback/link-local IPs. |
|
|
115
|
+
| `allowHttp` | `false` | Allow `http://` upstreams (auto-enabled by `dev: true`). |
|
|
116
|
+
| `maxConcurrencyPerHost` | `10` | Per-host concurrency cap. |
|
|
117
|
+
| `defaultTimeoutMs` | `30000` | Per-request timeout. |
|
|
118
|
+
| `defaultMaxResponseBytes` | `262144` | Per-response size cap. |
|
|
118
119
|
|
|
119
120
|
Full reference: [Configuration](https://docs.agentfront.dev/frontmcp/plugins/skilled-openapi/configuration).
|
|
120
121
|
|
|
@@ -136,7 +137,7 @@ Details: [Security](https://docs.agentfront.dev/frontmcp/plugins/skilled-openapi
|
|
|
136
137
|
|
|
137
138
|
## Documentation
|
|
138
139
|
|
|
139
|
-
Full docs: **https://docs.agentfront.dev/frontmcp/plugins/skilled-openapi**
|
|
140
|
+
Full docs: **https://docs.agentfront.dev/frontmcp/plugins/skilled-openapi/overview**
|
|
140
141
|
|
|
141
142
|
- [Overview](https://docs.agentfront.dev/frontmcp/plugins/skilled-openapi/overview) · [Quickstart](https://docs.agentfront.dev/frontmcp/plugins/skilled-openapi/quickstart) · [Sources](https://docs.agentfront.dev/frontmcp/plugins/skilled-openapi/sources) · [Bundle format](https://docs.agentfront.dev/frontmcp/plugins/skilled-openapi/bundle-format)
|
|
142
143
|
- [Configuration](https://docs.agentfront.dev/frontmcp/plugins/skilled-openapi/configuration) · [Meta-tools](https://docs.agentfront.dev/frontmcp/plugins/skilled-openapi/meta-tools) · [Security](https://docs.agentfront.dev/frontmcp/plugins/skilled-openapi/security) · [API reference](https://docs.agentfront.dev/frontmcp/plugins/skilled-openapi/api-reference)
|
package/esm/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frontmcp/plugin-skilled-openapi",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "FrontMCP plugin: serve a customer's OpenAPI spec as skill bundles (signed, OpenAPI-Overlay-based) with hidden per-operation tools mediated by three meta-tools (search_skill / load_skill / run_workflow — the last runs an enclave-sandboxed AgentScript that orchestrates the loaded skills' operations).",
|
|
5
5
|
"author": "AgentFront <info@agentfront.dev>",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -48,14 +48,14 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@frontmcp/adapters": "1.
|
|
52
|
-
"@frontmcp/auth": "1.
|
|
53
|
-
"@frontmcp/sdk": "1.
|
|
51
|
+
"@frontmcp/adapters": "1.6.0",
|
|
52
|
+
"@frontmcp/auth": "1.6.0",
|
|
53
|
+
"@frontmcp/sdk": "1.6.0"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
56
|
"@enclave-vm/ast": "*",
|
|
57
57
|
"@enclave-vm/core": "*",
|
|
58
|
-
"@frontmcp/lazy-zod": "1.
|
|
58
|
+
"@frontmcp/lazy-zod": "1.6.0"
|
|
59
59
|
},
|
|
60
60
|
"peerDependenciesMeta": {
|
|
61
61
|
"@enclave-vm/ast": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frontmcp/plugin-skilled-openapi",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "FrontMCP plugin: serve a customer's OpenAPI spec as skill bundles (signed, OpenAPI-Overlay-based) with hidden per-operation tools mediated by three meta-tools (search_skill / load_skill / run_workflow — the last runs an enclave-sandboxed AgentScript that orchestrates the loaded skills' operations).",
|
|
5
5
|
"author": "AgentFront <info@agentfront.dev>",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -48,14 +48,14 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@frontmcp/adapters": "1.
|
|
52
|
-
"@frontmcp/auth": "1.
|
|
53
|
-
"@frontmcp/sdk": "1.
|
|
51
|
+
"@frontmcp/adapters": "1.6.0",
|
|
52
|
+
"@frontmcp/auth": "1.6.0",
|
|
53
|
+
"@frontmcp/sdk": "1.6.0"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
56
|
"@enclave-vm/ast": "*",
|
|
57
57
|
"@enclave-vm/core": "*",
|
|
58
|
-
"@frontmcp/lazy-zod": "1.
|
|
58
|
+
"@frontmcp/lazy-zod": "1.6.0"
|
|
59
59
|
},
|
|
60
60
|
"peerDependenciesMeta": {
|
|
61
61
|
"@enclave-vm/ast": {
|