@rafads/plugin-openapi 1.5.38

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.
Files changed (122) hide show
  1. package/README.md +83 -0
  2. package/dist/AddOpenApiIntegration-JPAEXE56.js +512 -0
  3. package/dist/AddOpenApiIntegration-JPAEXE56.js.map +1 -0
  4. package/dist/OpenApiAccountsPanel-GZFDSTAU.js +106 -0
  5. package/dist/OpenApiAccountsPanel-GZFDSTAU.js.map +1 -0
  6. package/dist/UpdateSpecSection-KUSNI44Q.js +106 -0
  7. package/dist/UpdateSpecSection-KUSNI44Q.js.map +1 -0
  8. package/dist/api/group.d.ts +239 -0
  9. package/dist/api/handlers.d.ts +7 -0
  10. package/dist/api/index.d.ts +237 -0
  11. package/dist/chunk-6V45G2XQ.js +199 -0
  12. package/dist/chunk-6V45G2XQ.js.map +1 -0
  13. package/dist/chunk-CURJJXB3.js +132 -0
  14. package/dist/chunk-CURJJXB3.js.map +1 -0
  15. package/dist/chunk-CXFO6TLJ.js +39 -0
  16. package/dist/chunk-CXFO6TLJ.js.map +1 -0
  17. package/dist/chunk-HTHEUUJA.js +2873 -0
  18. package/dist/chunk-HTHEUUJA.js.map +1 -0
  19. package/dist/chunk-IG6QTTZB.js +79 -0
  20. package/dist/chunk-IG6QTTZB.js.map +1 -0
  21. package/dist/chunk-O2LMSZ2Z.js +120 -0
  22. package/dist/chunk-O2LMSZ2Z.js.map +1 -0
  23. package/dist/chunk-OR27BCXQ.js +956 -0
  24. package/dist/chunk-OR27BCXQ.js.map +1 -0
  25. package/dist/chunk-R7TVM3XD.js +275 -0
  26. package/dist/chunk-R7TVM3XD.js.map +1 -0
  27. package/dist/client.js +38 -0
  28. package/dist/client.js.map +1 -0
  29. package/dist/core.js +331 -0
  30. package/dist/core.js.map +1 -0
  31. package/dist/index.js +19 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/providers/google/config.d.ts +34 -0
  34. package/dist/providers/google/discovery.d.ts +49 -0
  35. package/dist/providers/google/discovery.test.d.ts +1 -0
  36. package/dist/providers/google/index.d.ts +5 -0
  37. package/dist/providers/google/oauth-scopes.d.ts +3 -0
  38. package/dist/providers/google/oauth-scopes.test.d.ts +1 -0
  39. package/dist/providers/google/openapi-ownership-migration.d.ts +7 -0
  40. package/dist/providers/google/openapi-ownership-migration.test.d.ts +1 -0
  41. package/dist/providers/google/presets.d.ts +31 -0
  42. package/dist/providers/google/presets.test.d.ts +1 -0
  43. package/dist/providers/google/spec-format-adapter.d.ts +3 -0
  44. package/dist/providers/google/spec-format-adapter.test.d.ts +1 -0
  45. package/dist/providers/google.js +1446 -0
  46. package/dist/providers/google.js.map +1 -0
  47. package/dist/providers/microsoft/graph.d.ts +76 -0
  48. package/dist/providers/microsoft/graph.test.d.ts +1 -0
  49. package/dist/providers/microsoft/index.d.ts +3 -0
  50. package/dist/providers/microsoft/presets.d.ts +46 -0
  51. package/dist/providers/microsoft/presets.test.d.ts +1 -0
  52. package/dist/providers/microsoft/spec-format-adapter.d.ts +2 -0
  53. package/dist/providers/microsoft/spec-format-adapter.test.d.ts +1 -0
  54. package/dist/providers/microsoft.js +1056 -0
  55. package/dist/providers/microsoft.js.map +1 -0
  56. package/dist/react/AddOpenApiIntegration.d.ts +22 -0
  57. package/dist/react/AddOpenApiIntegration.test.d.ts +1 -0
  58. package/dist/react/OpenApiAccountsPanel.d.ts +6 -0
  59. package/dist/react/OpenApiIntegrationDetailsFields.d.ts +25 -0
  60. package/dist/react/UpdateSpecSection.d.ts +2 -0
  61. package/dist/react/atoms.d.ts +317 -0
  62. package/dist/react/auth-method-config.d.ts +18 -0
  63. package/dist/react/auth-method-config.test.d.ts +1 -0
  64. package/dist/react/client.d.ts +233 -0
  65. package/dist/react/index.d.ts +5 -0
  66. package/dist/react/integration-plugin.d.ts +6 -0
  67. package/dist/react/plugin-client.d.ts +2 -0
  68. package/dist/sdk/backing.d.ts +188 -0
  69. package/dist/sdk/client-credentials-oauth.test.d.ts +1 -0
  70. package/dist/sdk/compiled-spec-cache.test.d.ts +1 -0
  71. package/dist/sdk/config.d.ts +81 -0
  72. package/dist/sdk/configure.test.d.ts +1 -0
  73. package/dist/sdk/definitions.d.ts +57 -0
  74. package/dist/sdk/derive-auth.d.ts +11 -0
  75. package/dist/sdk/describe-auth-methods.test.d.ts +1 -0
  76. package/dist/sdk/errors.d.ts +45 -0
  77. package/dist/sdk/extract.d.ts +157 -0
  78. package/dist/sdk/extract.test.d.ts +1 -0
  79. package/dist/sdk/form-urlencoded-body.test.d.ts +1 -0
  80. package/dist/sdk/index.d.ts +19 -0
  81. package/dist/sdk/index.test.d.ts +1 -0
  82. package/dist/sdk/invoke.d.ts +150 -0
  83. package/dist/sdk/migrate-config.d.ts +4 -0
  84. package/dist/sdk/migrate-config.test.d.ts +1 -0
  85. package/dist/sdk/multi-scope-bearer.test.d.ts +1 -0
  86. package/dist/sdk/multi-scope-oauth.test.d.ts +1 -0
  87. package/dist/sdk/ndjson-output-migration.d.ts +13 -0
  88. package/dist/sdk/ndjson-output-migration.test.d.ts +1 -0
  89. package/dist/sdk/non-json-body.test.d.ts +1 -0
  90. package/dist/sdk/oauth-refresh.test.d.ts +1 -0
  91. package/dist/sdk/openapi-utils.d.ts +65 -0
  92. package/dist/sdk/output-schema-migration.d.ts +21 -0
  93. package/dist/sdk/output-schema-migration.test.d.ts +1 -0
  94. package/dist/sdk/parse.d.ts +33 -0
  95. package/dist/sdk/parse.test.d.ts +1 -0
  96. package/dist/sdk/plugin.d.ts +109 -0
  97. package/dist/sdk/plugin.test.d.ts +1 -0
  98. package/dist/sdk/presets.d.ts +15 -0
  99. package/dist/sdk/preview-oauth2.test.d.ts +1 -0
  100. package/dist/sdk/preview.d.ts +514 -0
  101. package/dist/sdk/query-serialization.test.d.ts +1 -0
  102. package/dist/sdk/real-specs.test.d.ts +1 -0
  103. package/dist/sdk/request-user-agent.test.d.ts +1 -0
  104. package/dist/sdk/response-headers-timeout.test.d.ts +1 -0
  105. package/dist/sdk/server-url-resolution.test.d.ts +1 -0
  106. package/dist/sdk/spec-blob-migration.d.ts +7 -0
  107. package/dist/sdk/spec-blob.test.d.ts +1 -0
  108. package/dist/sdk/spec-format.d.ts +36 -0
  109. package/dist/sdk/spec-format.test.d.ts +1 -0
  110. package/dist/sdk/split.d.ts +84 -0
  111. package/dist/sdk/store.d.ts +49 -0
  112. package/dist/sdk/store.test.d.ts +1 -0
  113. package/dist/sdk/streaming-response.test.d.ts +1 -0
  114. package/dist/sdk/tool-row-projection.test.d.ts +1 -0
  115. package/dist/sdk/types.d.ts +352 -0
  116. package/dist/sdk/upstream-failures.test.d.ts +1 -0
  117. package/dist/sdk/usage-scope-isolation.test.d.ts +1 -0
  118. package/dist/testing/index.d.ts +177 -0
  119. package/dist/testing.js +454 -0
  120. package/dist/testing.js.map +1 -0
  121. package/dist/testing.test.d.ts +1 -0
  122. package/package.json +103 -0
@@ -0,0 +1,7 @@
1
+ import { Effect } from "effect";
2
+ import { type SqliteDataMigrationClient } from "@rafads/sdk/core";
3
+ /** Registry entry for the boot-time data-migration ledger. */
4
+ export declare const openApiSpecBlobDataMigration: {
5
+ name: string;
6
+ run: (client: SqliteDataMigrationClient) => Effect.Effect<void, import("@rafads/sdk/core").DataMigrationError, never>;
7
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,36 @@
1
+ import type { Layer } from "effect";
2
+ import { Effect } from "effect";
3
+ import type { HttpClient } from "effect/unstable/http";
4
+ import type { Authentication } from "./types";
5
+ import type { OpenApiIntegrationConfig } from "./config";
6
+ import type { KeepPathItem } from "./split";
7
+ import { OpenApiParseError } from "./errors";
8
+ export interface SpecFetchCredentials {
9
+ readonly headers?: Record<string, string>;
10
+ readonly queryParams?: Record<string, string>;
11
+ }
12
+ export interface SpecFetchInput {
13
+ readonly urls: readonly string[];
14
+ readonly credentials?: SpecFetchCredentials;
15
+ readonly httpClientLayer: Layer.Layer<HttpClient.HttpClient, never, never>;
16
+ }
17
+ export interface DerivedIdentity {
18
+ readonly slug: string;
19
+ readonly name: string;
20
+ readonly description?: string;
21
+ }
22
+ export interface ConvertedSpec {
23
+ readonly specText: string;
24
+ readonly specUrl?: string;
25
+ readonly baseUrl?: string;
26
+ readonly authenticationTemplate?: readonly Authentication[];
27
+ readonly config?: Partial<OpenApiIntegrationConfig> & Readonly<Record<string, unknown>>;
28
+ readonly keepPathItem?: KeepPathItem;
29
+ readonly document?: unknown;
30
+ }
31
+ export interface SpecFormatAdapter {
32
+ readonly id: string;
33
+ readonly fetch: (input: SpecFetchInput) => Effect.Effect<ConvertedSpec, OpenApiParseError>;
34
+ readonly deriveIdentity?: (doc: unknown) => DerivedIdentity | null;
35
+ }
36
+ export declare const resolveSpecFormatAdapter: (adapters: readonly SpecFormatAdapter[], id: string | undefined) => Effect.Effect<SpecFormatAdapter | null, OpenApiParseError>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Structural splitter for large OpenAPI documents written in clean block YAML.
3
+ *
4
+ * The whole-document parse of a 37MB spec (Microsoft Graph: 16.5k operations,
5
+ * 8.2k schemas) builds a ~300MB JS tree that OOMs the 128MB Cloudflare Workers
6
+ * isolate. This splitter avoids ever holding that tree: it scans the text once,
7
+ * recording the byte range of each top-level key, each path-item (the indent-2
8
+ * entries under `paths:`), and each schema (the indent-4 entries under
9
+ * `components.schemas:`). The streaming compile then slices one item at a time,
10
+ * de-indents it back to column 0, hands the isolated fragment to a real YAML
11
+ * parser, and discards the result before moving on. Peak memory stays near the
12
+ * size of the largest single item plus the raw text, not the parsed whole.
13
+ *
14
+ * This is not a YAML reimplementation: it extracts safe byte ranges from a
15
+ * constrained document shape, then defers every actual parse to `js-yaml`. It
16
+ * is only valid for the block-YAML profile `isStreamableSpec` accepts (2-space
17
+ * block maps, top-level keys at column 0, no anchors/aliases/merge keys). Block
18
+ * scalars (`|` / `>`) in descriptions are tracked so their indented content is
19
+ * never mistaken for structure.
20
+ */
21
+ export interface ByteRange {
22
+ readonly start: number;
23
+ readonly end: number;
24
+ }
25
+ export interface SpecStructure {
26
+ /** Raw spec text. Every range below indexes into this string. */
27
+ readonly text: string;
28
+ /** Byte ranges of the top-level keys that are not `paths` / `components`
29
+ * (openapi, info, servers, tags, security, ...). Concatenated and parsed as
30
+ * one small document for the head (servers, info). */
31
+ readonly headRanges: readonly ByteRange[];
32
+ /** One range per path-item: the indent-2 entries under `paths:`. */
33
+ readonly pathItems: readonly ByteRange[];
34
+ /** One range per schema entry: the indent-4 entries under
35
+ * `components.schemas:`. */
36
+ readonly schemas: readonly ByteRange[];
37
+ /** Ranges of the indent-2 `components` subkeys we keep whole because they are
38
+ * small and may be `$ref`'d by a kept operation (parameters / requestBodies /
39
+ * responses / headers / links / securitySchemes). Excludes the huge `schemas`
40
+ * (streamed and pruned separately) and `examples` (never referenced by a
41
+ * binding). */
42
+ readonly smallComponentRanges: readonly ByteRange[];
43
+ }
44
+ /**
45
+ * Scan a document into its structural ranges. Pure and synchronous; never
46
+ * parses. Returns null when the document does not present the expected shape
47
+ * (no `paths:` block), so the caller can fall back to a whole-document parse.
48
+ */
49
+ export declare const structuralSplit: (text: string) => SpecStructure | null;
50
+ /**
51
+ * Parse a single indent-N entry range (a path-item or a schema) in isolation.
52
+ * Returns `[name, value]` where `name` is the entry's key and `value` its
53
+ * parsed body, or null when the fragment does not parse to a single-key map.
54
+ */
55
+ export declare const parseEntry: (text: string, range: ByteRange, indent: number) => readonly [string, unknown] | null;
56
+ /** Parse the concatenation of the head ranges into the document head (openapi,
57
+ * info, servers, tags). Small; safe to materialize whole. */
58
+ export declare const parseHead: (structure: SpecStructure) => Record<string, unknown>;
59
+ /** Parse the small component subkeys (parameters / requestBodies / responses)
60
+ * into a `components`-shaped object for `$ref` resolution. */
61
+ export declare const parseSmallComponents: (structure: SpecStructure) => Record<string, unknown>;
62
+ /**
63
+ * Accept only the block-YAML profile the splitter can safely slice: no tabs, no
64
+ * anchors/aliases, no merge keys, and a `paths:` block present. Block scalars
65
+ * are allowed (tracked during the scan). Conservative by design: a false
66
+ * negative just routes a spec through the whole-document parse.
67
+ */
68
+ export declare const isStreamableSpec: (text: string) => boolean;
69
+ /** Map each `components.schemas` entry name to its byte range, reading only the
70
+ * key line (never parsing the schema body). The schema name is the raw YAML
71
+ * key, which matches the trailing segment of a `#/components/schemas/<name>`
72
+ * reference. */
73
+ export declare const indexSchemas: (structure: SpecStructure) => ReadonlyMap<string, ByteRange>;
74
+ /**
75
+ * Resolve the transitive closure of schemas referenced by `roots`, parsing each
76
+ * referenced schema once from its byte range (BFS over `$ref`s). Schemas not
77
+ * reachable from `roots` are never parsed, so peak memory tracks the kept
78
+ * subset rather than the full `components.schemas` map.
79
+ */
80
+ export declare const collectReferencedSchemas: (structure: SpecStructure, index: ReadonlyMap<string, ByteRange>, roots: readonly unknown[]) => Record<string, unknown>;
81
+ /** A path-item filter for the streaming compile: given a parsed path-item,
82
+ * return the (possibly trimmed) value to keep, or null to drop the path
83
+ * entirely. Applied per path-item by `streamOperationBindingsFromStructure`. */
84
+ export type KeepPathItem = (path: string, pathItem: Record<string, unknown>) => Record<string, unknown> | null;
@@ -0,0 +1,49 @@
1
+ import { Effect } from "effect";
2
+ import { type StorageDeps, type StorageFailure } from "@rafads/sdk/core";
3
+ import { OperationBinding } from "./types";
4
+ export interface StoredOperation {
5
+ /** The integration slug this operation belongs to. */
6
+ readonly integration: string;
7
+ /** The tool name (the `<tool>` address segment) this operation backs. */
8
+ readonly toolName: string;
9
+ readonly binding: OperationBinding;
10
+ /** Resolved tool description, persisted alongside the binding so the serve
11
+ * path can rebuild the tool def without re-parsing the spec. */
12
+ readonly description?: string;
13
+ }
14
+ /** Blob key for a spec's content hash. Content-addressed so re-puts are
15
+ * idempotent and identical specs share one blob per partition. */
16
+ export declare const specBlobKey: (specHash: string) => string;
17
+ /** Blob key for a spec's compiled `#/$defs/*` schemas, keyed by the same
18
+ * content hash as the spec. The serve path reads this instead of re-parsing
19
+ * the (potentially multi-MB) spec to rebuild the shared `definitions`. */
20
+ export declare const defsBlobKey: (specHash: string) => string;
21
+ export interface OpenapiStore {
22
+ /** Replace all stored operations for an integration. */
23
+ readonly putOperations: (integration: string, operations: readonly StoredOperation[]) => Effect.Effect<void, StorageFailure>;
24
+ /** Append operations without clearing existing ones. The caller is
25
+ * responsible for `removeOperations` first when doing a full rebuild. Used
26
+ * by the streaming compile path, which persists operations chunk by chunk so
27
+ * a huge spec's bindings are never all materialized at once. */
28
+ readonly appendOperations: (integration: string, operations: readonly StoredOperation[]) => Effect.Effect<void, StorageFailure>;
29
+ /** Look up one operation by integration + tool name. */
30
+ readonly getOperation: (integration: string, toolName: string) => Effect.Effect<StoredOperation | null, StorageFailure>;
31
+ /** List every stored operation for an integration. */
32
+ readonly listOperations: (integration: string) => Effect.Effect<readonly StoredOperation[], StorageFailure>;
33
+ /** Drop all stored operations for an integration. */
34
+ readonly removeOperations: (integration: string) => Effect.Effect<void, StorageFailure>;
35
+ /** Persist resolved spec text under its content hash. Org-owned and
36
+ * content-addressed; never removed on integration removal because another
37
+ * integration in the tenant may share the hash. */
38
+ readonly putSpec: (specHash: string, specText: string) => Effect.Effect<void, StorageFailure>;
39
+ /** Load spec text by content hash; null when no blob exists. */
40
+ readonly getSpec: (specHash: string) => Effect.Effect<string | null, StorageFailure>;
41
+ /** Persist the compiled `#/$defs/*` JSON for a spec under its content hash.
42
+ * Content-addressed like the spec blob; lets the serve path serve the shared
43
+ * `definitions` without re-parsing the spec. */
44
+ readonly putDefs: (specHash: string, defsJson: string) => Effect.Effect<void, StorageFailure>;
45
+ /** Load the compiled `#/$defs/*` JSON by content hash; null when no blob
46
+ * exists (legacy rows added before the defs blob). */
47
+ readonly getDefs: (specHash: string) => Effect.Effect<string | null, StorageFailure>;
48
+ }
49
+ export declare const makeDefaultOpenapiStore: ({ pluginStorage, blobs }: StorageDeps) => OpenapiStore;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,352 @@
1
+ import { Schema } from "effect";
2
+ import { type OAuthAuthentication } from "@rafads/sdk/shared";
3
+ import { type ApiKeyAuthMethod, type ApiKeyAuthTemplate } from "@rafads/sdk/http-auth";
4
+ export { TOKEN_VARIABLE } from "@rafads/sdk/http-auth";
5
+ export type APIKeyAuthentication = ApiKeyAuthMethod;
6
+ /** Every method is keyed by `kind` — `kind: "oauth2"` | `kind: "apikey"`. */
7
+ export type Authentication = OAuthAuthentication | APIKeyAuthentication;
8
+ /** What auth inputs accept: oauth templates (wire-typed: plain slug) plus the
9
+ * request-shaped apikey dialect (`type: "apiKey"`, headers/queryParams
10
+ * records) — the ONE apikey authoring shape. Stored configs and the catalog
11
+ * read as canonical placements; `apiKeyAuthTemplateFromMethod` serializes
12
+ * them back for read-modify-write flows. */
13
+ export type OAuthAuthenticationInput = Omit<OAuthAuthentication, "slug"> & {
14
+ readonly slug: string;
15
+ };
16
+ export type AuthenticationInput = OAuthAuthenticationInput | ApiKeyAuthTemplate;
17
+ /** Expand the request-shaped dialect into canonical placements and brand the
18
+ * oauth slugs. A dialect entry without a slug gets a blank one —
19
+ * `mergeAuthTemplates` backfills `custom_<id>`. */
20
+ export declare const normalizeOpenApiAuthInputs: (inputs: readonly AuthenticationInput[]) => readonly Authentication[];
21
+ export declare const OperationId: Schema.brand<Schema.String, "OperationId">;
22
+ export type OperationId = typeof OperationId.Type;
23
+ export declare const HttpMethod: Schema.Literals<readonly ["get", "put", "post", "delete", "patch", "head", "options", "trace"]>;
24
+ export type HttpMethod = typeof HttpMethod.Type;
25
+ export declare const ParameterLocation: Schema.Literals<readonly ["path", "query", "header", "cookie"]>;
26
+ export type ParameterLocation = typeof ParameterLocation.Type;
27
+ export declare const OperationParameter: Schema.Struct<{
28
+ readonly name: Schema.String;
29
+ readonly location: Schema.Literals<readonly ["path", "query", "header", "cookie"]>;
30
+ readonly required: Schema.Boolean;
31
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
32
+ readonly style: Schema.OptionFromOptional<Schema.String>;
33
+ readonly explode: Schema.OptionFromOptional<Schema.Boolean>;
34
+ readonly allowReserved: Schema.OptionFromOptional<Schema.Boolean>;
35
+ readonly description: Schema.OptionFromOptional<Schema.String>;
36
+ }>;
37
+ export type OperationParameter = typeof OperationParameter.Type;
38
+ /**
39
+ * OpenAPI 3.x `Encoding Object` (§4.8.15). Declared per-property inside a
40
+ * multipart/form-data or application/x-www-form-urlencoded request body.
41
+ *
42
+ * - `contentType` — for multipart, overrides the per-part `Content-Type`
43
+ * header (e.g. `application/json` for a JSON-encoded metadata part).
44
+ * - `style` / `explode` / `allowReserved` — for form-urlencoded, control
45
+ * array / object serialization the same way parameter-level style does.
46
+ */
47
+ export declare const EncodingObject: Schema.Struct<{
48
+ readonly contentType: Schema.OptionFromOptional<Schema.String>;
49
+ readonly style: Schema.OptionFromOptional<Schema.String>;
50
+ readonly explode: Schema.OptionFromOptional<Schema.Boolean>;
51
+ readonly allowReserved: Schema.OptionFromOptional<Schema.Boolean>;
52
+ }>;
53
+ export type EncodingObject = typeof EncodingObject.Type;
54
+ export declare const MediaBinding: Schema.Struct<{
55
+ readonly contentType: Schema.String;
56
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
57
+ readonly encoding: Schema.OptionFromOptional<Schema.$Record<Schema.String, Schema.Struct<{
58
+ readonly contentType: Schema.OptionFromOptional<Schema.String>;
59
+ readonly style: Schema.OptionFromOptional<Schema.String>;
60
+ readonly explode: Schema.OptionFromOptional<Schema.Boolean>;
61
+ readonly allowReserved: Schema.OptionFromOptional<Schema.Boolean>;
62
+ }>>>;
63
+ }>;
64
+ export type MediaBinding = typeof MediaBinding.Type;
65
+ export declare const OperationRequestBody: Schema.Struct<{
66
+ readonly required: Schema.Boolean;
67
+ /** Default media type — first declared in spec order (not JSON-first).
68
+ * Used when the caller does not override via the tool's `contentType` arg. */
69
+ readonly contentType: Schema.String;
70
+ /** Schema of the default media type. Kept for backward compat with stored
71
+ * bindings from before `contents` was added. */
72
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
73
+ /** All declared media types in spec order. Populated by `extract.ts`
74
+ * going forward; older persisted bindings may have this unset and will
75
+ * fall back to `{contentType, schema}`. */
76
+ readonly contents: Schema.OptionFromOptional<Schema.$Array<Schema.Struct<{
77
+ readonly contentType: Schema.String;
78
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
79
+ readonly encoding: Schema.OptionFromOptional<Schema.$Record<Schema.String, Schema.Struct<{
80
+ readonly contentType: Schema.OptionFromOptional<Schema.String>;
81
+ readonly style: Schema.OptionFromOptional<Schema.String>;
82
+ readonly explode: Schema.OptionFromOptional<Schema.Boolean>;
83
+ readonly allowReserved: Schema.OptionFromOptional<Schema.Boolean>;
84
+ }>>>;
85
+ }>>>;
86
+ }>;
87
+ export type OperationRequestBody = typeof OperationRequestBody.Type;
88
+ export declare const OperationFileHint: Schema.Struct<{
89
+ readonly kind: Schema.Literals<readonly ["binaryResponse", "byteField"]>;
90
+ readonly mimeType: Schema.OptionFromOptional<Schema.String>;
91
+ readonly dataField: Schema.OptionFromOptional<Schema.String>;
92
+ readonly sizeField: Schema.OptionFromOptional<Schema.String>;
93
+ readonly encoding: Schema.OptionFromOptional<Schema.Literals<readonly ["base64", "base64url"]>>;
94
+ }>;
95
+ export type OperationFileHint = typeof OperationFileHint.Type;
96
+ export declare const OperationResponseBody: Schema.Struct<{
97
+ readonly contentType: Schema.String;
98
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
99
+ readonly fileHint: Schema.OptionFromOptional<Schema.Struct<{
100
+ readonly kind: Schema.Literals<readonly ["binaryResponse", "byteField"]>;
101
+ readonly mimeType: Schema.OptionFromOptional<Schema.String>;
102
+ readonly dataField: Schema.OptionFromOptional<Schema.String>;
103
+ readonly sizeField: Schema.OptionFromOptional<Schema.String>;
104
+ readonly encoding: Schema.OptionFromOptional<Schema.Literals<readonly ["base64", "base64url"]>>;
105
+ }>>;
106
+ }>;
107
+ export type OperationResponseBody = typeof OperationResponseBody.Type;
108
+ export declare const ServerVariable: Schema.Struct<{
109
+ readonly default: Schema.String;
110
+ readonly enum: Schema.OptionFromOptional<Schema.$Array<Schema.String>>;
111
+ readonly description: Schema.OptionFromOptional<Schema.String>;
112
+ }>;
113
+ export type ServerVariable = typeof ServerVariable.Type;
114
+ export declare const ServerInfo: Schema.Struct<{
115
+ readonly url: Schema.String;
116
+ readonly description: Schema.OptionFromOptional<Schema.String>;
117
+ readonly variables: Schema.OptionFromOptional<Schema.$Record<Schema.String, Schema.Struct<{
118
+ readonly default: Schema.String;
119
+ readonly enum: Schema.OptionFromOptional<Schema.$Array<Schema.String>>;
120
+ readonly description: Schema.OptionFromOptional<Schema.String>;
121
+ }>>>;
122
+ }>;
123
+ export type ServerInfo = typeof ServerInfo.Type;
124
+ export declare const ExtractedOperation: Schema.Struct<{
125
+ readonly operationId: Schema.brand<Schema.String, "OperationId">;
126
+ readonly toolPath: Schema.OptionFromOptional<Schema.String>;
127
+ readonly method: Schema.Literals<readonly ["get", "put", "post", "delete", "patch", "head", "options", "trace"]>;
128
+ readonly servers: Schema.$Array<Schema.Struct<{
129
+ readonly url: Schema.String;
130
+ readonly description: Schema.OptionFromOptional<Schema.String>;
131
+ readonly variables: Schema.OptionFromOptional<Schema.$Record<Schema.String, Schema.Struct<{
132
+ readonly default: Schema.String;
133
+ readonly enum: Schema.OptionFromOptional<Schema.$Array<Schema.String>>;
134
+ readonly description: Schema.OptionFromOptional<Schema.String>;
135
+ }>>>;
136
+ }>>;
137
+ readonly pathTemplate: Schema.String;
138
+ readonly summary: Schema.OptionFromOptional<Schema.String>;
139
+ readonly description: Schema.OptionFromOptional<Schema.String>;
140
+ readonly tags: Schema.$Array<Schema.String>;
141
+ readonly parameters: Schema.$Array<Schema.Struct<{
142
+ readonly name: Schema.String;
143
+ readonly location: Schema.Literals<readonly ["path", "query", "header", "cookie"]>;
144
+ readonly required: Schema.Boolean;
145
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
146
+ readonly style: Schema.OptionFromOptional<Schema.String>;
147
+ readonly explode: Schema.OptionFromOptional<Schema.Boolean>;
148
+ readonly allowReserved: Schema.OptionFromOptional<Schema.Boolean>;
149
+ readonly description: Schema.OptionFromOptional<Schema.String>;
150
+ }>>;
151
+ readonly requestBody: Schema.OptionFromOptional<Schema.Struct<{
152
+ readonly required: Schema.Boolean;
153
+ /** Default media type — first declared in spec order (not JSON-first).
154
+ * Used when the caller does not override via the tool's `contentType` arg. */
155
+ readonly contentType: Schema.String;
156
+ /** Schema of the default media type. Kept for backward compat with stored
157
+ * bindings from before `contents` was added. */
158
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
159
+ /** All declared media types in spec order. Populated by `extract.ts`
160
+ * going forward; older persisted bindings may have this unset and will
161
+ * fall back to `{contentType, schema}`. */
162
+ readonly contents: Schema.OptionFromOptional<Schema.$Array<Schema.Struct<{
163
+ readonly contentType: Schema.String;
164
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
165
+ readonly encoding: Schema.OptionFromOptional<Schema.$Record<Schema.String, Schema.Struct<{
166
+ readonly contentType: Schema.OptionFromOptional<Schema.String>;
167
+ readonly style: Schema.OptionFromOptional<Schema.String>;
168
+ readonly explode: Schema.OptionFromOptional<Schema.Boolean>;
169
+ readonly allowReserved: Schema.OptionFromOptional<Schema.Boolean>;
170
+ }>>>;
171
+ }>>>;
172
+ }>>;
173
+ readonly responseBody: Schema.OptionFromOptional<Schema.Struct<{
174
+ readonly contentType: Schema.String;
175
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
176
+ readonly fileHint: Schema.OptionFromOptional<Schema.Struct<{
177
+ readonly kind: Schema.Literals<readonly ["binaryResponse", "byteField"]>;
178
+ readonly mimeType: Schema.OptionFromOptional<Schema.String>;
179
+ readonly dataField: Schema.OptionFromOptional<Schema.String>;
180
+ readonly sizeField: Schema.OptionFromOptional<Schema.String>;
181
+ readonly encoding: Schema.OptionFromOptional<Schema.Literals<readonly ["base64", "base64url"]>>;
182
+ }>>;
183
+ }>>;
184
+ readonly inputSchema: Schema.OptionFromOptional<Schema.Unknown>;
185
+ readonly outputSchema: Schema.OptionFromOptional<Schema.Unknown>;
186
+ readonly deprecated: Schema.Boolean;
187
+ /** OAuth scope requirements from `security`, alternatives preserved: each
188
+ * inner array is one acceptable Security Requirement Object's scope set
189
+ * (sorted, deduped); the outer array is an OR across alternatives. An
190
+ * absent operation `security` inherits the document default; an explicit
191
+ * `security: []` (auth disabled) and a scope-less declaration both omit
192
+ * the field. */
193
+ readonly requiredScopeAlternatives: Schema.optional<Schema.$Array<Schema.$Array<Schema.String>>>;
194
+ }>;
195
+ export type ExtractedOperation = typeof ExtractedOperation.Type;
196
+ export declare const ExtractionResult: Schema.Struct<{
197
+ readonly title: Schema.OptionFromOptional<Schema.String>;
198
+ /** The spec's `info.description` — the author's own summary of the API. */
199
+ readonly description: Schema.OptionFromOptional<Schema.String>;
200
+ readonly version: Schema.OptionFromOptional<Schema.String>;
201
+ readonly servers: Schema.$Array<Schema.Struct<{
202
+ readonly url: Schema.String;
203
+ readonly description: Schema.OptionFromOptional<Schema.String>;
204
+ readonly variables: Schema.OptionFromOptional<Schema.$Record<Schema.String, Schema.Struct<{
205
+ readonly default: Schema.String;
206
+ readonly enum: Schema.OptionFromOptional<Schema.$Array<Schema.String>>;
207
+ readonly description: Schema.OptionFromOptional<Schema.String>;
208
+ }>>>;
209
+ }>>;
210
+ readonly operations: Schema.$Array<Schema.Struct<{
211
+ readonly operationId: Schema.brand<Schema.String, "OperationId">;
212
+ readonly toolPath: Schema.OptionFromOptional<Schema.String>;
213
+ readonly method: Schema.Literals<readonly ["get", "put", "post", "delete", "patch", "head", "options", "trace"]>;
214
+ readonly servers: Schema.$Array<Schema.Struct<{
215
+ readonly url: Schema.String;
216
+ readonly description: Schema.OptionFromOptional<Schema.String>;
217
+ readonly variables: Schema.OptionFromOptional<Schema.$Record<Schema.String, Schema.Struct<{
218
+ readonly default: Schema.String;
219
+ readonly enum: Schema.OptionFromOptional<Schema.$Array<Schema.String>>;
220
+ readonly description: Schema.OptionFromOptional<Schema.String>;
221
+ }>>>;
222
+ }>>;
223
+ readonly pathTemplate: Schema.String;
224
+ readonly summary: Schema.OptionFromOptional<Schema.String>;
225
+ readonly description: Schema.OptionFromOptional<Schema.String>;
226
+ readonly tags: Schema.$Array<Schema.String>;
227
+ readonly parameters: Schema.$Array<Schema.Struct<{
228
+ readonly name: Schema.String;
229
+ readonly location: Schema.Literals<readonly ["path", "query", "header", "cookie"]>;
230
+ readonly required: Schema.Boolean;
231
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
232
+ readonly style: Schema.OptionFromOptional<Schema.String>;
233
+ readonly explode: Schema.OptionFromOptional<Schema.Boolean>;
234
+ readonly allowReserved: Schema.OptionFromOptional<Schema.Boolean>;
235
+ readonly description: Schema.OptionFromOptional<Schema.String>;
236
+ }>>;
237
+ readonly requestBody: Schema.OptionFromOptional<Schema.Struct<{
238
+ readonly required: Schema.Boolean;
239
+ /** Default media type — first declared in spec order (not JSON-first).
240
+ * Used when the caller does not override via the tool's `contentType` arg. */
241
+ readonly contentType: Schema.String;
242
+ /** Schema of the default media type. Kept for backward compat with stored
243
+ * bindings from before `contents` was added. */
244
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
245
+ /** All declared media types in spec order. Populated by `extract.ts`
246
+ * going forward; older persisted bindings may have this unset and will
247
+ * fall back to `{contentType, schema}`. */
248
+ readonly contents: Schema.OptionFromOptional<Schema.$Array<Schema.Struct<{
249
+ readonly contentType: Schema.String;
250
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
251
+ readonly encoding: Schema.OptionFromOptional<Schema.$Record<Schema.String, Schema.Struct<{
252
+ readonly contentType: Schema.OptionFromOptional<Schema.String>;
253
+ readonly style: Schema.OptionFromOptional<Schema.String>;
254
+ readonly explode: Schema.OptionFromOptional<Schema.Boolean>;
255
+ readonly allowReserved: Schema.OptionFromOptional<Schema.Boolean>;
256
+ }>>>;
257
+ }>>>;
258
+ }>>;
259
+ readonly responseBody: Schema.OptionFromOptional<Schema.Struct<{
260
+ readonly contentType: Schema.String;
261
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
262
+ readonly fileHint: Schema.OptionFromOptional<Schema.Struct<{
263
+ readonly kind: Schema.Literals<readonly ["binaryResponse", "byteField"]>;
264
+ readonly mimeType: Schema.OptionFromOptional<Schema.String>;
265
+ readonly dataField: Schema.OptionFromOptional<Schema.String>;
266
+ readonly sizeField: Schema.OptionFromOptional<Schema.String>;
267
+ readonly encoding: Schema.OptionFromOptional<Schema.Literals<readonly ["base64", "base64url"]>>;
268
+ }>>;
269
+ }>>;
270
+ readonly inputSchema: Schema.OptionFromOptional<Schema.Unknown>;
271
+ readonly outputSchema: Schema.OptionFromOptional<Schema.Unknown>;
272
+ readonly deprecated: Schema.Boolean;
273
+ /** OAuth scope requirements from `security`, alternatives preserved: each
274
+ * inner array is one acceptable Security Requirement Object's scope set
275
+ * (sorted, deduped); the outer array is an OR across alternatives. An
276
+ * absent operation `security` inherits the document default; an explicit
277
+ * `security: []` (auth disabled) and a scope-less declaration both omit
278
+ * the field. */
279
+ readonly requiredScopeAlternatives: Schema.optional<Schema.$Array<Schema.$Array<Schema.String>>>;
280
+ }>>;
281
+ }>;
282
+ export type ExtractionResult = typeof ExtractionResult.Type;
283
+ export declare const OperationBinding: Schema.Struct<{
284
+ readonly method: Schema.Literals<readonly ["get", "put", "post", "delete", "patch", "head", "options", "trace"]>;
285
+ readonly servers: Schema.optional<Schema.$Array<Schema.Struct<{
286
+ readonly url: Schema.String;
287
+ readonly description: Schema.OptionFromOptional<Schema.String>;
288
+ readonly variables: Schema.OptionFromOptional<Schema.$Record<Schema.String, Schema.Struct<{
289
+ readonly default: Schema.String;
290
+ readonly enum: Schema.OptionFromOptional<Schema.$Array<Schema.String>>;
291
+ readonly description: Schema.OptionFromOptional<Schema.String>;
292
+ }>>>;
293
+ }>>>;
294
+ readonly pathTemplate: Schema.String;
295
+ readonly parameters: Schema.$Array<Schema.Struct<{
296
+ readonly name: Schema.String;
297
+ readonly location: Schema.Literals<readonly ["path", "query", "header", "cookie"]>;
298
+ readonly required: Schema.Boolean;
299
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
300
+ readonly style: Schema.OptionFromOptional<Schema.String>;
301
+ readonly explode: Schema.OptionFromOptional<Schema.Boolean>;
302
+ readonly allowReserved: Schema.OptionFromOptional<Schema.Boolean>;
303
+ readonly description: Schema.OptionFromOptional<Schema.String>;
304
+ }>>;
305
+ readonly requestBody: Schema.OptionFromOptional<Schema.Struct<{
306
+ readonly required: Schema.Boolean;
307
+ /** Default media type — first declared in spec order (not JSON-first).
308
+ * Used when the caller does not override via the tool's `contentType` arg. */
309
+ readonly contentType: Schema.String;
310
+ /** Schema of the default media type. Kept for backward compat with stored
311
+ * bindings from before `contents` was added. */
312
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
313
+ /** All declared media types in spec order. Populated by `extract.ts`
314
+ * going forward; older persisted bindings may have this unset and will
315
+ * fall back to `{contentType, schema}`. */
316
+ readonly contents: Schema.OptionFromOptional<Schema.$Array<Schema.Struct<{
317
+ readonly contentType: Schema.String;
318
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
319
+ readonly encoding: Schema.OptionFromOptional<Schema.$Record<Schema.String, Schema.Struct<{
320
+ readonly contentType: Schema.OptionFromOptional<Schema.String>;
321
+ readonly style: Schema.OptionFromOptional<Schema.String>;
322
+ readonly explode: Schema.OptionFromOptional<Schema.Boolean>;
323
+ readonly allowReserved: Schema.OptionFromOptional<Schema.Boolean>;
324
+ }>>>;
325
+ }>>>;
326
+ }>>;
327
+ readonly responseBody: Schema.OptionFromOptional<Schema.Struct<{
328
+ readonly contentType: Schema.String;
329
+ readonly schema: Schema.OptionFromOptional<Schema.Unknown>;
330
+ readonly fileHint: Schema.OptionFromOptional<Schema.Struct<{
331
+ readonly kind: Schema.Literals<readonly ["binaryResponse", "byteField"]>;
332
+ readonly mimeType: Schema.OptionFromOptional<Schema.String>;
333
+ readonly dataField: Schema.OptionFromOptional<Schema.String>;
334
+ readonly sizeField: Schema.OptionFromOptional<Schema.String>;
335
+ readonly encoding: Schema.OptionFromOptional<Schema.Literals<readonly ["base64", "base64url"]>>;
336
+ }>>;
337
+ }>>;
338
+ /** Declared OAuth scope alternatives (see
339
+ * ExtractedOperation.requiredScopeAlternatives), persisted with the
340
+ * binding so the invoke path can annotate a scope-insufficient rejection
341
+ * with exactly what the operation needs. Optional so bindings stored
342
+ * before this field existed keep decoding. */
343
+ readonly requiredScopeAlternatives: Schema.optional<Schema.$Array<Schema.$Array<Schema.String>>>;
344
+ }>;
345
+ export type OperationBinding = typeof OperationBinding.Type;
346
+ export declare const InvocationResult: Schema.Struct<{
347
+ readonly status: Schema.Number;
348
+ readonly headers: Schema.$Record<Schema.String, Schema.String>;
349
+ readonly data: Schema.NullOr<Schema.Unknown>;
350
+ readonly error: Schema.NullOr<Schema.Unknown>;
351
+ }>;
352
+ export type InvocationResult = typeof InvocationResult.Type;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};