@knitli/openapi-mcp 1.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 CHANGED
@@ -217,6 +217,17 @@ restart with the remaining valid catalogs. Config requires at least one catalog;
217
217
  leave the server stopped if disabling the last one. Removing a file while the
218
218
  process is using it is not a reliable disable procedure.
219
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
+
220
231
  ## Recover from a bad release
221
232
 
222
233
  Before release, record the prior **observed package version**, its tarball digest,
@@ -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
+ }
@@ -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";
@@ -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": "1.0.0",
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",