@knitli/openapi-mcp 0.0.0 → 1.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 +36 -14
- package/dist/runtime/admission.d.ts +8 -0
- package/dist/runtime/admission.js +9 -0
- package/dist/runtime/index.d.ts +1 -0
- package/dist/runtime/index.js +1 -0
- package/package.json +11 -1
package/README.md
CHANGED
|
@@ -16,10 +16,14 @@ established; use Node for `serve`. `/runtime` and `/conformance` pass an isolate
|
|
|
16
16
|
WebWorker-only declaration check and browser bundle. This is not evidence of an
|
|
17
17
|
actual Cloudflare D1 deployment or D1 conformance.
|
|
18
18
|
|
|
19
|
-
The source version is `0.0.0`.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
The source version is `0.0.0`. That version was published under the `bootstrap`
|
|
20
|
+
dist-tag on 2026-09-05; its public installation, signatures, provenance, and
|
|
21
|
+
installed consumer were verified. See the [bootstrap release record](../../docs/superpowers/reviews/2026-09-05-openapi-mcp-bootstrap.md)
|
|
22
|
+
for the exact artifact and workflow binding. This is not a stable `latest`
|
|
23
|
+
release or evidence of a successful trusted-publishing release.
|
|
24
|
+
|
|
25
|
+
For a locally built and tested tarball, install its absolute path from a clean
|
|
26
|
+
consumer directory:
|
|
23
27
|
|
|
24
28
|
```sh
|
|
25
29
|
npm install --ignore-scripts /absolute/path/to/openapi-mcp.tgz
|
|
@@ -28,8 +32,8 @@ node --version
|
|
|
28
32
|
|
|
29
33
|
After a real stable version is observed in npm, pin that exact verified version
|
|
30
34
|
with `npm install --save-exact @knitli/openapi-mcp@<verified-version>`. A bootstrap
|
|
31
|
-
`0.0.0` publication
|
|
32
|
-
|
|
35
|
+
`0.0.0` publication uses the `bootstrap` dist-tag and is not a stable release.
|
|
36
|
+
The CLI examples below use the consumer's `node_modules/.bin` binary.
|
|
33
37
|
|
|
34
38
|
## Generate a signing key and compile a release
|
|
35
39
|
|
|
@@ -213,6 +217,17 @@ restart with the remaining valid catalogs. Config requires at least one catalog;
|
|
|
213
217
|
leave the server stopped if disabling the last one. Removing a file while the
|
|
214
218
|
process is using it is not a reliable disable procedure.
|
|
215
219
|
|
|
220
|
+
## Complete release admission
|
|
221
|
+
|
|
222
|
+
`admitCatalogRelease(options, catalogId, releaseId)` from
|
|
223
|
+
`@knitli/openapi-mcp/runtime` verifies every signed inventory operation and
|
|
224
|
+
schema before admitting the generation through the configured `GenerationStore`.
|
|
225
|
+
It revalidates the manifest and inventory around generation CAS retries. Use
|
|
226
|
+
this supported portable API when activating an executable catalog; `admitManifest`
|
|
227
|
+
retains its signed-envelope-only contract. Storage must preserve immutable release
|
|
228
|
+
identities. Admission does not guarantee future availability, so runtime reads
|
|
229
|
+
continue verifying records at use time.
|
|
230
|
+
|
|
216
231
|
## Recover from a bad release
|
|
217
232
|
|
|
218
233
|
Before release, record the prior **observed package version**, its tarball digest,
|
|
@@ -341,14 +356,21 @@ external setup and bootstrap-cleanup gates. Until then, build/test/validation
|
|
|
341
356
|
still run and publication is explicitly reported as pending. A real build,
|
|
342
357
|
publication, or audit failure continues to fail the job and its dependents.
|
|
343
358
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
359
|
+
The one-time `0.0.0` bootstrap is complete. Its manual dispatch and token-backed
|
|
360
|
+
jobs have been removed; do not rerun publication of that version. The adapter
|
|
361
|
+
still rejects token environment mappings, including mappings in disabled jobs.
|
|
362
|
+
The [bootstrap release record](../../docs/superpowers/reviews/2026-09-05-openapi-mcp-bootstrap.md)
|
|
363
|
+
separates verified publication and secret removal from owner-reported npm setup
|
|
364
|
+
and the remaining first-`latest` gate.
|
|
365
|
+
|
|
366
|
+
After publication, the verification step waits for the exact version to appear
|
|
367
|
+
in the public package listing before attempting a fresh installation. Only a
|
|
368
|
+
missing package or missing version is retried: at most six requests, each with
|
|
369
|
+
a ten-second timeout, separated by ten-second waits. Invalid metadata and other
|
|
370
|
+
errors fail the check. This readiness probe cannot guarantee every registry
|
|
371
|
+
replica or tarball URL is ready. Installation, cryptographic verification, and
|
|
372
|
+
consumer checks remain mandatory; publication itself is never retried by this
|
|
373
|
+
probe.
|
|
352
374
|
|
|
353
375
|
For bootstrap and every stable release, retain a fresh public install's
|
|
354
376
|
`npm audit signatures --json --include-attestations` output in the protected job
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AdmittedManifest } from "./manifest.ts";
|
|
2
|
+
import { type OpenApiRuntimeOptions } from "./runtime.ts";
|
|
3
|
+
import type { CatalogId, ReleaseId } from "./types.ts";
|
|
4
|
+
/** Verify the complete release inventory before atomically admitting its generation.
|
|
5
|
+
* Storage must preserve immutable release identities; later runtime reads still
|
|
6
|
+
* verify records because this check cannot guarantee future storage availability.
|
|
7
|
+
*/
|
|
8
|
+
export declare function admitCatalogRelease(options: OpenApiRuntimeOptions, catalogId: CatalogId, releaseId: ReleaseId): Promise<AdmittedManifest>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { admitExecutableRelease, verifyExecutableRelease, } from "./runtime.js";
|
|
2
|
+
/** Verify the complete release inventory before atomically admitting its generation.
|
|
3
|
+
* Storage must preserve immutable release identities; later runtime reads still
|
|
4
|
+
* verify records because this check cannot guarantee future storage availability.
|
|
5
|
+
*/
|
|
6
|
+
export async function admitCatalogRelease(options, catalogId, releaseId) {
|
|
7
|
+
const preflight = await verifyExecutableRelease(options, catalogId, releaseId);
|
|
8
|
+
return admitExecutableRelease(options, preflight);
|
|
9
|
+
}
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type { ActionDispatchPermit } from "./action-permit.ts";
|
|
2
|
+
export { admitCatalogRelease } from "./admission.ts";
|
|
2
3
|
export { classifyOperation, type OperationClassification, } from "./classify.ts";
|
|
3
4
|
export { digestCredentialAuthorizationBinding, snapshotCredentialAuthorizationBinding, } from "./credential-binding.ts";
|
|
4
5
|
export { sha256, verifyEd25519 } from "./digest.ts";
|
package/dist/runtime/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { admitCatalogRelease } from "./admission.js";
|
|
1
2
|
export { classifyOperation, } from "./classify.js";
|
|
2
3
|
export { digestCredentialAuthorizationBinding, snapshotCredentialAuthorizationBinding, } from "./credential-binding.js";
|
|
3
4
|
export { sha256, verifyEd25519 } from "./digest.js";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knitli/openapi-mcp",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "1.1.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Compile signed OpenAPI catalogs and serve verified search and authorized API calls over MCP.",
|
|
7
7
|
"license": "MIT OR Apache-2.0",
|
|
@@ -111,6 +111,16 @@
|
|
|
111
111
|
"release": "patch"
|
|
112
112
|
},
|
|
113
113
|
{
|
|
114
|
+
"scope": "!@(openapi-mcp)",
|
|
115
|
+
"release": false
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"scope": null,
|
|
119
|
+
"release": false
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"scope": "openapi-mcp",
|
|
123
|
+
"type": "!@(feat|fix|perf)",
|
|
114
124
|
"release": false
|
|
115
125
|
}
|
|
116
126
|
]
|