@fragno-dev/mcp-fragment 0.0.0-stage → 0.0.3

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 (90) hide show
  1. package/LICENSE.md +16 -0
  2. package/README.md +312 -2
  3. package/bin/run.js +7 -0
  4. package/dist/browser/client/react.d.ts +253 -0
  5. package/dist/browser/client/react.d.ts.map +1 -0
  6. package/dist/browser/client/react.js +194 -0
  7. package/dist/browser/client/react.js.map +1 -0
  8. package/dist/browser/client/solid.d.ts +256 -0
  9. package/dist/browser/client/solid.d.ts.map +1 -0
  10. package/dist/browser/client/solid.js +129 -0
  11. package/dist/browser/client/solid.js.map +1 -0
  12. package/dist/browser/client/svelte.d.ts +256 -0
  13. package/dist/browser/client/svelte.d.ts.map +1 -0
  14. package/dist/browser/client/svelte.js +131 -0
  15. package/dist/browser/client/svelte.js.map +1 -0
  16. package/dist/browser/client/vanilla.d.ts +283 -0
  17. package/dist/browser/client/vanilla.d.ts.map +1 -0
  18. package/dist/browser/client/vanilla.js +159 -0
  19. package/dist/browser/client/vanilla.js.map +1 -0
  20. package/dist/browser/client/vue.d.ts +256 -0
  21. package/dist/browser/client/vue.d.ts.map +1 -0
  22. package/dist/browser/client/vue.js +127 -0
  23. package/dist/browser/client/vue.js.map +1 -0
  24. package/dist/browser/client-BCzNDSlW.d.ts +711 -0
  25. package/dist/browser/client-BCzNDSlW.d.ts.map +1 -0
  26. package/dist/browser/index.d.ts +813 -0
  27. package/dist/browser/index.d.ts.map +1 -0
  28. package/dist/browser/index.js +1 -0
  29. package/dist/browser/src-B6dHZXqB.js +2303 -0
  30. package/dist/browser/src-B6dHZXqB.js.map +1 -0
  31. package/dist/cli/cli.d.ts +6 -0
  32. package/dist/cli/cli.d.ts.map +1 -0
  33. package/dist/cli/cli.js +227 -0
  34. package/dist/cli/cli.js.map +1 -0
  35. package/dist/cli/definition.js +330 -0
  36. package/dist/cli/definition.js.map +1 -0
  37. package/dist/cli/diagnostics.js +93 -0
  38. package/dist/cli/diagnostics.js.map +1 -0
  39. package/dist/cli/index.js +13 -0
  40. package/dist/cli/index.js.map +1 -0
  41. package/dist/cli/mcp-api.js +87 -0
  42. package/dist/cli/mcp-api.js.map +1 -0
  43. package/dist/cli/mcp-types.js +100 -0
  44. package/dist/cli/mcp-types.js.map +1 -0
  45. package/dist/cli/oauth-provider.js +113 -0
  46. package/dist/cli/oauth-provider.js.map +1 -0
  47. package/dist/cli/routes.js +743 -0
  48. package/dist/cli/routes.js.map +1 -0
  49. package/dist/cli/schema.js +13 -0
  50. package/dist/cli/schema.js.map +1 -0
  51. package/dist/cli/services.js +330 -0
  52. package/dist/cli/services.js.map +1 -0
  53. package/dist/node/definition.d.ts +260 -0
  54. package/dist/node/definition.d.ts.map +1 -0
  55. package/dist/node/definition.js +330 -0
  56. package/dist/node/definition.js.map +1 -0
  57. package/dist/node/diagnostics.js +93 -0
  58. package/dist/node/diagnostics.js.map +1 -0
  59. package/dist/node/index.d.ts +694 -0
  60. package/dist/node/index.d.ts.map +1 -0
  61. package/dist/node/index.js +26 -0
  62. package/dist/node/index.js.map +1 -0
  63. package/dist/node/mcp-api.d.ts +2 -0
  64. package/dist/node/mcp-api.js +87 -0
  65. package/dist/node/mcp-api.js.map +1 -0
  66. package/dist/node/mcp-types.d.ts +146 -0
  67. package/dist/node/mcp-types.d.ts.map +1 -0
  68. package/dist/node/mcp-types.js +100 -0
  69. package/dist/node/mcp-types.js.map +1 -0
  70. package/dist/node/oauth-provider.d.ts +24 -0
  71. package/dist/node/oauth-provider.d.ts.map +1 -0
  72. package/dist/node/oauth-provider.js +113 -0
  73. package/dist/node/oauth-provider.js.map +1 -0
  74. package/dist/node/routes.d.ts +466 -0
  75. package/dist/node/routes.d.ts.map +1 -0
  76. package/dist/node/routes.js +743 -0
  77. package/dist/node/routes.js.map +1 -0
  78. package/dist/node/schema.d.ts +9 -0
  79. package/dist/node/schema.d.ts.map +1 -0
  80. package/dist/node/schema.js +13 -0
  81. package/dist/node/schema.js.map +1 -0
  82. package/dist/node/services.d.ts +40 -0
  83. package/dist/node/services.d.ts.map +1 -0
  84. package/dist/node/services.js +330 -0
  85. package/dist/node/services.js.map +1 -0
  86. package/dist/node/testing/mcp-test-server.d.ts +42 -0
  87. package/dist/node/testing/mcp-test-server.d.ts.map +1 -0
  88. package/dist/node/testing/mcp-test-server.js +218 -0
  89. package/dist/node/testing/mcp-test-server.js.map +1 -0
  90. package/package.json +130 -3
@@ -0,0 +1,813 @@
1
+ import { n as FragnoClientMutatorData, o as NonGetHTTPMethod, s as FragnoPublicClientConfig, t as FragnoClientHookData } from "./client-BCzNDSlW.js";
2
+ import { FragnoPublicConfigWithDatabase, HookContext, HookFn } from "@fragno-dev/db";
3
+ import { OAuthClientInformationMixed, OAuthDiscoveryState, OAuthTokens } from "@modelcontextprotocol/client";
4
+ import { z } from "zod";
5
+ //#region src/mcp-types.d.ts
6
+ interface McpFragmentConfig$1 {
7
+ /** Optional URL allow-list. If omitted, only http(s) URL syntax is checked. */
8
+ allowedEndpointUrls?: (url: URL) => boolean;
9
+ /** Allows OAuth callback URLs. OAuth start is rejected when this policy is omitted. */
10
+ allowedOAuthRedirectUris?: (url: URL) => boolean;
11
+ /** Optional fetch implementation for tests/custom runtimes. */
12
+ fetch?: typeof fetch;
13
+ }
14
+ //#endregion
15
+ //#region src/oauth-provider.d.ts
16
+ interface OAuthProviderChanges {
17
+ authorizationUrl?: URL;
18
+ clientInformation?: OAuthClientInformationMixed;
19
+ tokens?: OAuthTokens;
20
+ discoveryState?: OAuthDiscoveryState;
21
+ oauthState?: {
22
+ id: string;
23
+ codeVerifier: string;
24
+ redirectUri: string;
25
+ scope?: string;
26
+ expiresAt: Date;
27
+ };
28
+ consumeStateId?: string;
29
+ /** The server rejected the stored tokens, so they must be removed unless new ones were saved. */
30
+ tokensInvalidated?: boolean;
31
+ /** The server rejected the registered client, so it must be removed unless a new one was saved. */
32
+ clientInvalidated?: boolean;
33
+ /** The discovered metadata failed, so it must be removed unless it was discovered again. */
34
+ discoveryInvalidated?: boolean;
35
+ }
36
+ //#endregion
37
+ //#region src/services.d.ts
38
+ /** A buffered OAuth secret is kept, replaced, or removed because the server rejected it. */
39
+ type OAuthSecretChange = {
40
+ action: "keep";
41
+ } | {
42
+ action: "save";
43
+ payload: string;
44
+ } | {
45
+ action: "remove";
46
+ };
47
+ declare function prepareOAuthChanges(changes: OAuthProviderChanges): Promise<{
48
+ clientChange: OAuthSecretChange;
49
+ discoveryChange: OAuthSecretChange;
50
+ authorizationUrl?: URL;
51
+ clientInformation?: import("@modelcontextprotocol/client").OAuthClientInformationMixed;
52
+ tokens?: OAuthTokens;
53
+ discoveryState?: import("@modelcontextprotocol/client").OAuthDiscoveryState;
54
+ oauthState?: {
55
+ id: string;
56
+ codeVerifier: string;
57
+ redirectUri: string;
58
+ scope?: string;
59
+ expiresAt: Date;
60
+ };
61
+ consumeStateId?: string;
62
+ tokensInvalidated?: boolean;
63
+ clientInvalidated?: boolean;
64
+ discoveryInvalidated?: boolean;
65
+ }>;
66
+ type AuthPersistenceChanges = Awaited<ReturnType<typeof prepareOAuthChanges>> & {
67
+ authPayload?: string;
68
+ authExpiresAt?: Date | null;
69
+ };
70
+ //#endregion
71
+ //#region src/definition.d.ts
72
+ interface McpServerConfigurationChangedPayload {
73
+ serverId: string;
74
+ current: {
75
+ tools: unknown[];
76
+ };
77
+ }
78
+ interface McpServerConfigurationDeletedPayload {
79
+ serverId: string;
80
+ }
81
+ interface McpServerReadinessChangedPayload {
82
+ serverId: string;
83
+ /** Whether stored auth can authorize operations; the server can still reject it. */
84
+ ready: boolean;
85
+ }
86
+ /**
87
+ * A readiness change as delivered. The server is read at delivery rather than stored with the hook,
88
+ * so it is the current configuration, or null after it was deleted.
89
+ */
90
+ interface McpServerReadinessChange extends McpServerReadinessChangedPayload {
91
+ server: {
92
+ name: string | null;
93
+ authMode: string;
94
+ } | null;
95
+ }
96
+ interface McpFragmentHooksConfig {
97
+ onServerConfigurationChanged?: (payload: McpServerConfigurationChangedPayload, context: HookContext) => Promise<void> | void;
98
+ onServerConfigurationDeleted?: (payload: McpServerConfigurationDeletedPayload, context: HookContext) => Promise<void> | void;
99
+ /**
100
+ * Fires when a write changes whether the server can authorize operations, including creation
101
+ * and credentials the server invalidates during an operation, and when an access token without a
102
+ * refresh token expires.
103
+ */
104
+ onServerReadinessChanged?: (payload: McpServerReadinessChange, context: HookContext) => Promise<void> | void;
105
+ }
106
+ type McpFragmentConfig = McpFragmentConfig$1 & McpFragmentHooksConfig;
107
+ interface McpInternalRefreshServerConfigurationPayload {
108
+ serverId: string;
109
+ }
110
+ /** The token stored when expiry was scheduled; a later write replaces it and reports itself. */
111
+ interface McpInternalAuthExpiredPayload {
112
+ serverId: string;
113
+ expiresAt: string;
114
+ }
115
+ type McpHooksMap = {
116
+ internalRefreshServerConfiguration: HookFn<McpInternalRefreshServerConfigurationPayload>;
117
+ internalAuthExpired: HookFn<McpInternalAuthExpiredPayload>;
118
+ onServerConfigurationChanged: HookFn<McpServerConfigurationChangedPayload>;
119
+ onServerConfigurationDeleted: HookFn<McpServerConfigurationDeletedPayload>;
120
+ onServerReadinessChanged: HookFn<McpServerReadinessChangedPayload>;
121
+ };
122
+ //#endregion
123
+ //#region src/index.d.ts
124
+ export declare function createMcpFragment(config: McpFragmentConfig, fragnoConfig: FragnoPublicConfigWithDatabase): import("@fragno-dev/core").FragnoInstantiatedFragment<readonly [import("@fragno-dev/core").FragnoRouteConfig<"POST", "/servers", import("zod").ZodObject<{
125
+ slug: import("zod").ZodString;
126
+ name: import("zod").ZodOptional<import("zod").ZodString>;
127
+ endpointUrl: import("zod").ZodURL;
128
+ auth: import("zod").ZodDefault<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
129
+ type: import("zod").ZodLiteral<"none">;
130
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
131
+ type: import("zod").ZodLiteral<"bearer">;
132
+ token: import("zod").ZodString;
133
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
134
+ type: import("zod").ZodLiteral<"client_credentials">;
135
+ clientId: import("zod").ZodString;
136
+ clientSecret: import("zod").ZodString;
137
+ scopes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
138
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
139
+ type: import("zod").ZodLiteral<"oauth">;
140
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
141
+ clientSecret: import("zod").ZodOptional<import("zod").ZodString>;
142
+ scopes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
143
+ }, import("zod/v4/core").$strip>], "type">>;
144
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
145
+ slug: import("zod").ZodString;
146
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
147
+ endpointUrl: import("zod").ZodString;
148
+ authMode: import("zod").ZodString;
149
+ cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
150
+ protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
151
+ serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
152
+ capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
153
+ tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
154
+ name: import("zod").ZodString;
155
+ title: import("zod").ZodOptional<import("zod").ZodString>;
156
+ description: import("zod").ZodOptional<import("zod").ZodString>;
157
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
158
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
159
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
160
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
161
+ }, import("zod/v4/core").$loose>>>>;
162
+ updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
163
+ }, import("zod/v4/core").$strip>>>;
164
+ }, import("zod/v4/core").$strip>, "SERVER_EXISTS" | "ENDPOINT_NOT_ALLOWED", string, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>>, import("@fragno-dev/core").FragnoRouteConfig<"GET", "/servers", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("zod").ZodObject<{
165
+ servers: import("zod").ZodArray<import("zod").ZodObject<{
166
+ slug: import("zod").ZodString;
167
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
168
+ endpointUrl: import("zod").ZodString;
169
+ authMode: import("zod").ZodString;
170
+ cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
171
+ protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
172
+ serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
173
+ capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
174
+ tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
175
+ name: import("zod").ZodString;
176
+ title: import("zod").ZodOptional<import("zod").ZodString>;
177
+ description: import("zod").ZodOptional<import("zod").ZodString>;
178
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
179
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
180
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
181
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
182
+ }, import("zod/v4/core").$loose>>>>;
183
+ updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
184
+ }, import("zod/v4/core").$strip>>>;
185
+ }, import("zod/v4/core").$strip>>;
186
+ }, import("zod/v4/core").$strip>, string, string, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>>, import("@fragno-dev/core").FragnoRouteConfig<"GET", "/servers/:slug", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("zod").ZodObject<{
187
+ slug: import("zod").ZodString;
188
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
189
+ endpointUrl: import("zod").ZodString;
190
+ authMode: import("zod").ZodString;
191
+ cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
192
+ protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
193
+ serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
194
+ capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
195
+ tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
196
+ name: import("zod").ZodString;
197
+ title: import("zod").ZodOptional<import("zod").ZodString>;
198
+ description: import("zod").ZodOptional<import("zod").ZodString>;
199
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
200
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
201
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
202
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
203
+ }, import("zod/v4/core").$loose>>>>;
204
+ updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
205
+ }, import("zod/v4/core").$strip>>>;
206
+ }, import("zod/v4/core").$strip>, "SERVER_NOT_FOUND", string, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>>, import("@fragno-dev/core").FragnoRouteConfig<"PUT", "/servers/:slug/configuration", import("zod").ZodObject<{
207
+ name: import("zod").ZodOptional<import("zod").ZodString>;
208
+ endpointUrl: import("zod").ZodURL;
209
+ auth: import("zod").ZodDefault<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
210
+ type: import("zod").ZodLiteral<"none">;
211
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
212
+ type: import("zod").ZodLiteral<"bearer">;
213
+ token: import("zod").ZodString;
214
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
215
+ type: import("zod").ZodLiteral<"client_credentials">;
216
+ clientId: import("zod").ZodString;
217
+ clientSecret: import("zod").ZodString;
218
+ scopes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
219
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
220
+ type: import("zod").ZodLiteral<"oauth">;
221
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
222
+ clientSecret: import("zod").ZodOptional<import("zod").ZodString>;
223
+ scopes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
224
+ }, import("zod/v4/core").$strip>], "type">>;
225
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
226
+ slug: import("zod").ZodString;
227
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
228
+ endpointUrl: import("zod").ZodString;
229
+ authMode: import("zod").ZodString;
230
+ cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
231
+ protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
232
+ serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
233
+ capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
234
+ tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
235
+ name: import("zod").ZodString;
236
+ title: import("zod").ZodOptional<import("zod").ZodString>;
237
+ description: import("zod").ZodOptional<import("zod").ZodString>;
238
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
239
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
240
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
241
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
242
+ }, import("zod/v4/core").$loose>>>>;
243
+ updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
244
+ }, import("zod/v4/core").$strip>>>;
245
+ }, import("zod/v4/core").$strip>, "ENDPOINT_NOT_ALLOWED" | "SERVER_NOT_FOUND", string, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>>, import("@fragno-dev/core").FragnoRouteConfig<"DELETE", "/servers/:slug", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, "SERVER_NOT_FOUND", string, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>>, import("@fragno-dev/core").FragnoRouteConfig<"GET", "/servers/:slug/auth/status", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
246
+ mode: import("zod").ZodLiteral<"none">;
247
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
248
+ mode: import("zod").ZodLiteral<"bearer">;
249
+ credentials: import("zod").ZodEnum<{
250
+ present: "present";
251
+ missing: "missing";
252
+ }>;
253
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
254
+ mode: import("zod").ZodLiteral<"client_credentials">;
255
+ credentials: import("zod").ZodEnum<{
256
+ present: "present";
257
+ missing: "missing";
258
+ }>;
259
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
260
+ mode: import("zod").ZodLiteral<"oauth">;
261
+ state: import("zod").ZodEnum<{
262
+ "consent-required": "consent-required";
263
+ "consent-pending": "consent-pending";
264
+ authorized: "authorized";
265
+ expired: "expired";
266
+ }>;
267
+ }, import("zod/v4/core").$strip>], "mode">, "SERVER_NOT_FOUND", string, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>>, import("@fragno-dev/core").FragnoRouteConfig<"GET", "/servers/:slug/auth/pending", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("zod").ZodObject<{
268
+ pending: import("zod").ZodNullable<import("zod").ZodObject<{
269
+ authorizationUrl: import("zod").ZodURL;
270
+ expiresAt: import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>;
271
+ }, import("zod/v4/core").$strip>>;
272
+ }, import("zod/v4/core").$strip>, "SERVER_NOT_FOUND", string, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>>, import("@fragno-dev/core").FragnoRouteConfig<"POST", "/servers/:slug/auth/token", import("zod").ZodObject<{
273
+ token: import("zod").ZodString;
274
+ }, import("zod/v4/core").$strip>, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
275
+ mode: import("zod").ZodLiteral<"none">;
276
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
277
+ mode: import("zod").ZodLiteral<"bearer">;
278
+ credentials: import("zod").ZodEnum<{
279
+ present: "present";
280
+ missing: "missing";
281
+ }>;
282
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
283
+ mode: import("zod").ZodLiteral<"client_credentials">;
284
+ credentials: import("zod").ZodEnum<{
285
+ present: "present";
286
+ missing: "missing";
287
+ }>;
288
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
289
+ mode: import("zod").ZodLiteral<"oauth">;
290
+ state: import("zod").ZodEnum<{
291
+ "consent-required": "consent-required";
292
+ "consent-pending": "consent-pending";
293
+ authorized: "authorized";
294
+ expired: "expired";
295
+ }>;
296
+ }, import("zod/v4/core").$strip>], "mode">, "SERVER_NOT_FOUND", string, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>>, import("@fragno-dev/core").FragnoRouteConfig<"POST", "/servers/:slug/auth/start", import("zod").ZodObject<{
297
+ scope: import("zod").ZodOptional<import("zod").ZodString>;
298
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
299
+ clientSecret: import("zod").ZodOptional<import("zod").ZodString>;
300
+ discardTokens: import("zod").ZodDefault<import("zod").ZodBoolean>;
301
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
302
+ authorizationUrl: import("zod").ZodString;
303
+ state: import("zod").ZodString;
304
+ }, import("zod/v4/core").$strip>, "SERVER_NOT_FOUND" | "INVALID_OAUTH_REDIRECT_URI" | "OAUTH_REDIRECT_URI_NOT_ALLOWED" | "OAUTH_ERROR", string, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>>, import("@fragno-dev/core").FragnoRouteConfig<"GET", "/oauth/callback", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("zod").ZodObject<{
305
+ authenticated: import("zod").ZodBoolean;
306
+ mode: import("zod").ZodString;
307
+ }, import("zod/v4/core").$strip>, "SERVER_NOT_FOUND" | "OAUTH_ERROR" | "INVALID_OAUTH_STATE", string, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>>, import("@fragno-dev/core").FragnoRouteConfig<"DELETE", "/servers/:slug/auth", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
308
+ mode: import("zod").ZodLiteral<"none">;
309
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
310
+ mode: import("zod").ZodLiteral<"bearer">;
311
+ credentials: import("zod").ZodEnum<{
312
+ present: "present";
313
+ missing: "missing";
314
+ }>;
315
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
316
+ mode: import("zod").ZodLiteral<"client_credentials">;
317
+ credentials: import("zod").ZodEnum<{
318
+ present: "present";
319
+ missing: "missing";
320
+ }>;
321
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
322
+ mode: import("zod").ZodLiteral<"oauth">;
323
+ state: import("zod").ZodEnum<{
324
+ "consent-required": "consent-required";
325
+ "consent-pending": "consent-pending";
326
+ authorized: "authorized";
327
+ expired: "expired";
328
+ }>;
329
+ }, import("zod/v4/core").$strip>], "mode">, "SERVER_NOT_FOUND", string, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>>, import("@fragno-dev/core").FragnoRouteConfig<"POST", "/servers/:slug/refresh", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("zod").ZodObject<{
330
+ ok: import("zod").ZodBoolean;
331
+ tools: import("zod").ZodArray<import("zod").ZodObject<{
332
+ name: import("zod").ZodString;
333
+ title: import("zod").ZodOptional<import("zod").ZodString>;
334
+ description: import("zod").ZodOptional<import("zod").ZodString>;
335
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
336
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
337
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
338
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
339
+ }, import("zod/v4/core").$loose>>;
340
+ stage: import("zod").ZodNullable<import("zod").ZodEnum<{
341
+ auth: "auth";
342
+ list_tools: "list_tools";
343
+ }>>;
344
+ checkedAt: import("zod").ZodString;
345
+ server: import("zod").ZodObject<{
346
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
347
+ endpointUrl: import("zod").ZodString;
348
+ authMode: import("zod").ZodString;
349
+ slug: import("zod").ZodString;
350
+ }, import("zod/v4/core").$strip>;
351
+ auth: import("zod").ZodObject<{
352
+ authenticated: import("zod").ZodBoolean;
353
+ mode: import("zod").ZodString;
354
+ tokenPresent: import("zod").ZodBoolean;
355
+ expiresAt: import("zod").ZodNullable<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
356
+ expired: import("zod").ZodNullable<import("zod").ZodBoolean>;
357
+ scopes: import("zod").ZodObject<{
358
+ requested: import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodString>>;
359
+ granted: import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodString>>;
360
+ missing: import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodString>>;
361
+ raw: import("zod").ZodNullable<import("zod").ZodString>;
362
+ }, import("zod/v4/core").$strip>;
363
+ }, import("zod/v4/core").$strip>;
364
+ live: import("zod").ZodObject<{
365
+ reachable: import("zod").ZodBoolean;
366
+ listToolsOk: import("zod").ZodBoolean;
367
+ toolCount: import("zod").ZodNullable<import("zod").ZodNumber>;
368
+ protocolVersion: import("zod").ZodNullable<import("zod").ZodString>;
369
+ serverInfo: import("zod").ZodNullable<import("zod").ZodUnknown>;
370
+ capabilities: import("zod").ZodNullable<import("zod").ZodUnknown>;
371
+ }, import("zod/v4/core").$strip>;
372
+ cache: import("zod").ZodObject<{
373
+ presentBeforeCheck: import("zod").ZodBoolean;
374
+ previousToolCount: import("zod").ZodNullable<import("zod").ZodNumber>;
375
+ updatedToolCount: import("zod").ZodNullable<import("zod").ZodNumber>;
376
+ }, import("zod/v4/core").$strip>;
377
+ error: import("zod").ZodNullable<import("zod").ZodObject<{
378
+ code: import("zod").ZodString;
379
+ message: import("zod").ZodString;
380
+ }, import("zod/v4/core").$strip>>;
381
+ }, import("zod/v4/core").$strip>, "SERVER_NOT_FOUND", string, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>>, import("@fragno-dev/core").FragnoRouteConfig<"POST", "/servers/:slug/tools/execute", import("zod").ZodObject<{
382
+ name: import("zod").ZodString;
383
+ arguments: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
384
+ timeoutMs: import("zod").ZodOptional<import("zod").ZodNumber>;
385
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
386
+ isError: import("zod").ZodBoolean;
387
+ content: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
388
+ structuredContent: import("zod").ZodUnknown;
389
+ }, import("zod/v4/core").$strip>, "SERVER_NOT_FOUND" | "MCP_ERROR", string, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>>], import("@fragno-dev/db").ImplicitDatabaseDependencies<import("@fragno-dev/db/schema").Schema<{
390
+ server_configuration: import("@fragno-dev/db/schema").Table<Record<"id", import("@fragno-dev/db/schema").IdColumn<"varchar(128)", string | import("@fragno-dev/db/schema").FragnoId | null, import("@fragno-dev/db/schema").FragnoId>> & Record<"name", import("@fragno-dev/db/schema").Column<"string", string | null, string | null>> & Record<"endpointUrl", import("@fragno-dev/db/schema").Column<"string", string, string>> & Record<"authMode", import("@fragno-dev/db/schema").Column<"string", string, string>> & Record<"createdAt", import("@fragno-dev/db/schema").Column<"timestamp", (Date | import("@fragno-dev/db").DbNow) | null, Date>> & Record<"updatedAt", import("@fragno-dev/db/schema").Column<"timestamp", (Date | import("@fragno-dev/db").DbNow) | null, Date>>, {}>;
391
+ secret: import("@fragno-dev/db/schema").Table<Record<"id", import("@fragno-dev/db/schema").IdColumn<"varchar(128)", string | import("@fragno-dev/db/schema").FragnoId | null, import("@fragno-dev/db/schema").FragnoId>> & Record<"serverId", import("@fragno-dev/db/schema").Column<"bigint", string | bigint | import("@fragno-dev/db/schema").FragnoId | import("@fragno-dev/db/schema").FragnoReference, import("@fragno-dev/db/schema").FragnoReference>> & Record<"kind", import("@fragno-dev/db/schema").Column<"string", string, string>> & Record<"payload", import("@fragno-dev/db/schema").Column<"text", string, string>> & Record<"expiresAt", import("@fragno-dev/db/schema").Column<"timestamp", (Date | import("@fragno-dev/db").DbNow) | null, Date | null>> & Record<"updatedAt", import("@fragno-dev/db/schema").Column<"timestamp", (Date | import("@fragno-dev/db").DbNow) | null, Date>>, Record<"idx_secret_server_kind", import("@fragno-dev/db/schema").Index<readonly [import("@fragno-dev/db/schema").Column<"bigint", string | bigint | import("@fragno-dev/db/schema").FragnoId | import("@fragno-dev/db/schema").FragnoReference, import("@fragno-dev/db/schema").FragnoReference>, import("@fragno-dev/db/schema").Column<"string", string, string>] & import("@fragno-dev/db/schema").AnyColumn[], readonly ["serverId", "kind"]>>>;
392
+ oauthState: import("@fragno-dev/db/schema").Table<Record<"id", import("@fragno-dev/db/schema").IdColumn<"varchar(128)", string | import("@fragno-dev/db/schema").FragnoId | null, import("@fragno-dev/db/schema").FragnoId>> & Record<"serverId", import("@fragno-dev/db/schema").Column<"bigint", string | bigint | import("@fragno-dev/db/schema").FragnoId | import("@fragno-dev/db/schema").FragnoReference, import("@fragno-dev/db/schema").FragnoReference>> & Record<"codeVerifier", import("@fragno-dev/db/schema").Column<"text", string, string>> & Record<"redirectUri", import("@fragno-dev/db/schema").Column<"string", string, string>> & Record<"scope", import("@fragno-dev/db/schema").Column<"string", string | null, string | null>> & Record<"expiresAt", import("@fragno-dev/db/schema").Column<"timestamp", Date | import("@fragno-dev/db").DbNow, Date>> & Record<"consumedAt", import("@fragno-dev/db/schema").Column<"timestamp", (Date | import("@fragno-dev/db").DbNow) | null, Date | null>> & Record<"authorizationUrl", import("@fragno-dev/db/schema").Column<"text", string | null, string | null>>, Record<"idx_oauth_state_server", import("@fragno-dev/db/schema").Index<readonly [import("@fragno-dev/db/schema").Column<"bigint", string | bigint | import("@fragno-dev/db/schema").FragnoId | import("@fragno-dev/db/schema").FragnoReference, import("@fragno-dev/db/schema").FragnoReference>] & import("@fragno-dev/db/schema").AnyColumn[], readonly ["serverId"]>> & Record<"idx_oauth_state_pending", import("@fragno-dev/db/schema").Index<readonly [import("@fragno-dev/db/schema").Column<"bigint", string | bigint | import("@fragno-dev/db/schema").FragnoId | import("@fragno-dev/db/schema").FragnoReference, import("@fragno-dev/db/schema").FragnoReference>, import("@fragno-dev/db/schema").Column<"timestamp", (Date | import("@fragno-dev/db").DbNow) | null, Date | null>, import("@fragno-dev/db/schema").Column<"timestamp", Date | import("@fragno-dev/db").DbNow, Date>] & import("@fragno-dev/db/schema").AnyColumn[], readonly ["serverId", "consumedAt", "expiresAt"]>>>;
393
+ server_connection_cache: import("@fragno-dev/db/schema").Table<Record<"id", import("@fragno-dev/db/schema").IdColumn<"varchar(128)", string | import("@fragno-dev/db/schema").FragnoId | null, import("@fragno-dev/db/schema").FragnoId>> & Record<"serverId", import("@fragno-dev/db/schema").Column<"bigint", string | bigint | import("@fragno-dev/db/schema").FragnoId | import("@fragno-dev/db/schema").FragnoReference, import("@fragno-dev/db/schema").FragnoReference>> & Record<"protocolVersion", import("@fragno-dev/db/schema").Column<"string", string | null, string | null>> & Record<"serverInfo", import("@fragno-dev/db/schema").Column<"json", unknown, unknown>> & Record<"capabilities", import("@fragno-dev/db/schema").Column<"json", unknown, unknown>> & Record<"tools", import("@fragno-dev/db/schema").Column<"json", unknown, unknown>> & Record<"updatedAt", import("@fragno-dev/db/schema").Column<"timestamp", (Date | import("@fragno-dev/db").DbNow) | null, Date>>, Record<"idx_server_connection_cache_server", import("@fragno-dev/db/schema").Index<readonly [import("@fragno-dev/db/schema").Column<"bigint", string | bigint | import("@fragno-dev/db/schema").FragnoId | import("@fragno-dev/db/schema").FragnoReference, import("@fragno-dev/db/schema").FragnoReference>] & import("@fragno-dev/db/schema").AnyColumn[], readonly ["serverId"]>>>;
394
+ }>>, import("@fragno-dev/core").BoundServices<{
395
+ startOAuth: (input: {
396
+ serverId: string;
397
+ stateId: string;
398
+ redirectUri: string;
399
+ scope?: string;
400
+ clientId?: string;
401
+ clientSecret?: string;
402
+ discardTokens: boolean;
403
+ }) => import("@fragno-dev/db").TxResult<{
404
+ found: true;
405
+ authorizationUrl: string;
406
+ } | {
407
+ found: false;
408
+ authorizationUrl?: undefined;
409
+ }, {
410
+ found: false;
411
+ authorizationUrl?: undefined;
412
+ serverId?: undefined;
413
+ authMode?: undefined;
414
+ secrets?: undefined;
415
+ changes?: undefined;
416
+ } | {
417
+ found: true;
418
+ authorizationUrl: string;
419
+ serverId: string;
420
+ authMode: string;
421
+ secrets: {
422
+ id: import("@fragno-dev/db/schema").FragnoId;
423
+ serverId: import("@fragno-dev/db/schema").FragnoReference;
424
+ kind: string;
425
+ payload: string;
426
+ expiresAt: Date | null;
427
+ updatedAt: Date;
428
+ }[];
429
+ changes: {
430
+ clientChange: {
431
+ action: "keep";
432
+ } | {
433
+ action: "save";
434
+ payload: string;
435
+ } | {
436
+ action: "remove";
437
+ };
438
+ discoveryChange: {
439
+ action: "keep";
440
+ } | {
441
+ action: "save";
442
+ payload: string;
443
+ } | {
444
+ action: "remove";
445
+ };
446
+ authorizationUrl?: URL;
447
+ clientInformation?: import("@modelcontextprotocol/client").OAuthClientInformationMixed;
448
+ tokens?: import("@modelcontextprotocol/client").OAuthTokens;
449
+ discoveryState?: import("@modelcontextprotocol/client").OAuthDiscoveryState;
450
+ oauthState?: {
451
+ id: string;
452
+ codeVerifier: string;
453
+ redirectUri: string;
454
+ scope?: string;
455
+ expiresAt: Date;
456
+ };
457
+ consumeStateId?: string;
458
+ tokensInvalidated?: boolean;
459
+ clientInvalidated?: boolean;
460
+ discoveryInvalidated?: boolean;
461
+ };
462
+ }>;
463
+ completeOAuthCallback: (input: {
464
+ stateId: string;
465
+ code: string;
466
+ iss: string | undefined;
467
+ }) => import("@fragno-dev/db").TxResult<{
468
+ found: true;
469
+ reason?: undefined;
470
+ } | {
471
+ found: false;
472
+ reason: "invalid_state" | "server_not_found";
473
+ }, {
474
+ found: false;
475
+ reason: "invalid_state";
476
+ server?: undefined;
477
+ secrets?: undefined;
478
+ cache?: undefined;
479
+ changes?: undefined;
480
+ } | {
481
+ found: false;
482
+ reason: "server_not_found";
483
+ server?: undefined;
484
+ secrets?: undefined;
485
+ cache?: undefined;
486
+ changes?: undefined;
487
+ } | {
488
+ found: true;
489
+ server: {
490
+ id: import("@fragno-dev/db/schema").FragnoId;
491
+ name: string | null;
492
+ endpointUrl: string;
493
+ authMode: string;
494
+ createdAt: Date;
495
+ updatedAt: Date;
496
+ };
497
+ secrets: {
498
+ id: import("@fragno-dev/db/schema").FragnoId;
499
+ serverId: import("@fragno-dev/db/schema").FragnoReference;
500
+ kind: string;
501
+ payload: string;
502
+ expiresAt: Date | null;
503
+ updatedAt: Date;
504
+ }[];
505
+ cache: {
506
+ id: import("@fragno-dev/db/schema").FragnoId;
507
+ serverId: import("@fragno-dev/db/schema").FragnoReference;
508
+ protocolVersion: string | null;
509
+ serverInfo: unknown;
510
+ capabilities: unknown;
511
+ tools: unknown;
512
+ updatedAt: Date;
513
+ } | null;
514
+ changes: AuthPersistenceChanges;
515
+ reason?: undefined;
516
+ }>;
517
+ prepareMcpOperation: (input: {
518
+ serverId: string;
519
+ }) => import("@fragno-dev/db").TxResult<{
520
+ found: true;
521
+ endpointUrl: string;
522
+ token: string | undefined;
523
+ secrets: {
524
+ id: import("@fragno-dev/db/schema").FragnoId;
525
+ serverId: import("@fragno-dev/db/schema").FragnoReference;
526
+ kind: string;
527
+ payload: string;
528
+ expiresAt: Date | null;
529
+ updatedAt: Date;
530
+ }[];
531
+ cache: {
532
+ id: import("@fragno-dev/db/schema").FragnoId;
533
+ serverId: import("@fragno-dev/db/schema").FragnoReference;
534
+ protocolVersion: string | null;
535
+ serverInfo: unknown;
536
+ capabilities: unknown;
537
+ tools: unknown;
538
+ updatedAt: Date;
539
+ } | null;
540
+ authChanges: AuthPersistenceChanges | undefined;
541
+ serverId: string;
542
+ } | {
543
+ found: false;
544
+ endpointUrl?: undefined;
545
+ token?: undefined;
546
+ secrets?: undefined;
547
+ cache?: undefined;
548
+ authChanges?: undefined;
549
+ serverId?: undefined;
550
+ }, {
551
+ found: false;
552
+ serverId?: undefined;
553
+ endpointUrl?: undefined;
554
+ token?: undefined;
555
+ secrets?: undefined;
556
+ cache?: undefined;
557
+ authChanges?: undefined;
558
+ } | {
559
+ found: true;
560
+ serverId: string;
561
+ endpointUrl: string;
562
+ token: string | undefined;
563
+ secrets: {
564
+ id: import("@fragno-dev/db/schema").FragnoId;
565
+ serverId: import("@fragno-dev/db/schema").FragnoReference;
566
+ kind: string;
567
+ payload: string;
568
+ expiresAt: Date | null;
569
+ updatedAt: Date;
570
+ }[];
571
+ cache: {
572
+ id: import("@fragno-dev/db/schema").FragnoId;
573
+ serverId: import("@fragno-dev/db/schema").FragnoReference;
574
+ protocolVersion: string | null;
575
+ serverInfo: unknown;
576
+ capabilities: unknown;
577
+ tools: unknown;
578
+ updatedAt: Date;
579
+ } | null;
580
+ authChanges: AuthPersistenceChanges | undefined;
581
+ }>;
582
+ }>, import("@fragno-dev/db").DatabaseServiceContext<McpHooksMap>, import("@fragno-dev/db").DatabaseRequestContext<McpHooksMap>, import("@fragno-dev/db/fragment-definition-builder").DatabaseRequestStorage, FragnoPublicConfigWithDatabase, never>;
583
+ export declare function createMcpFragmentClients(fragnoConfig?: FragnoPublicClientConfig): {
584
+ useServers: FragnoClientHookData<"GET", "/servers", import("zod").ZodObject<{
585
+ servers: import("zod").ZodArray<import("zod").ZodObject<{
586
+ slug: import("zod").ZodString;
587
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
588
+ endpointUrl: import("zod").ZodString;
589
+ authMode: import("zod").ZodString;
590
+ cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
591
+ protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
592
+ serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
593
+ capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
594
+ tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
595
+ name: import("zod").ZodString;
596
+ title: import("zod").ZodOptional<import("zod").ZodString>;
597
+ description: import("zod").ZodOptional<import("zod").ZodString>;
598
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
599
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
600
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
601
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
602
+ }, import("zod/v4/core").$loose>>>>;
603
+ updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
604
+ }, import("zod/v4/core").$strip>>>;
605
+ }, import("zod/v4/core").$strip>>;
606
+ }, import("zod/v4/core").$strip>, string, string>;
607
+ useServer: FragnoClientHookData<"GET", "/servers/:slug", import("zod").ZodObject<{
608
+ slug: import("zod").ZodString;
609
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
610
+ endpointUrl: import("zod").ZodString;
611
+ authMode: import("zod").ZodString;
612
+ cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
613
+ protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
614
+ serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
615
+ capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
616
+ tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
617
+ name: import("zod").ZodString;
618
+ title: import("zod").ZodOptional<import("zod").ZodString>;
619
+ description: import("zod").ZodOptional<import("zod").ZodString>;
620
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
621
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
622
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
623
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
624
+ }, import("zod/v4/core").$loose>>>>;
625
+ updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
626
+ }, import("zod/v4/core").$strip>>>;
627
+ }, import("zod/v4/core").$strip>, "SERVER_NOT_FOUND", string>;
628
+ createServer: FragnoClientMutatorData<NonGetHTTPMethod, "/servers", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | import("zod").ZodObject<{
629
+ slug: import("zod").ZodString;
630
+ name: import("zod").ZodOptional<import("zod").ZodString>;
631
+ endpointUrl: import("zod").ZodURL;
632
+ auth: import("zod").ZodDefault<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
633
+ type: import("zod").ZodLiteral<"none">;
634
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
635
+ type: import("zod").ZodLiteral<"bearer">;
636
+ token: import("zod").ZodString;
637
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
638
+ type: import("zod").ZodLiteral<"client_credentials">;
639
+ clientId: import("zod").ZodString;
640
+ clientSecret: import("zod").ZodString;
641
+ scopes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
642
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
643
+ type: import("zod").ZodLiteral<"oauth">;
644
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
645
+ clientSecret: import("zod").ZodOptional<import("zod").ZodString>;
646
+ scopes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
647
+ }, import("zod/v4/core").$strip>], "type">>;
648
+ }, import("zod/v4/core").$strip> | undefined, import("zod").ZodObject<{
649
+ slug: import("zod").ZodString;
650
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
651
+ endpointUrl: import("zod").ZodString;
652
+ authMode: import("zod").ZodString;
653
+ cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
654
+ protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
655
+ serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
656
+ capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
657
+ tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
658
+ name: import("zod").ZodString;
659
+ title: import("zod").ZodOptional<import("zod").ZodString>;
660
+ description: import("zod").ZodOptional<import("zod").ZodString>;
661
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
662
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
663
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
664
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
665
+ }, import("zod/v4/core").$loose>>>>;
666
+ updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
667
+ }, import("zod/v4/core").$strip>>>;
668
+ }, import("zod/v4/core").$strip> | import("zod").ZodObject<{
669
+ servers: import("zod").ZodArray<import("zod").ZodObject<{
670
+ slug: import("zod").ZodString;
671
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
672
+ endpointUrl: import("zod").ZodString;
673
+ authMode: import("zod").ZodString;
674
+ cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
675
+ protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
676
+ serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
677
+ capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
678
+ tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
679
+ name: import("zod").ZodString;
680
+ title: import("zod").ZodOptional<import("zod").ZodString>;
681
+ description: import("zod").ZodOptional<import("zod").ZodString>;
682
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
683
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
684
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
685
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
686
+ }, import("zod/v4/core").$loose>>>>;
687
+ updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
688
+ }, import("zod/v4/core").$strip>>>;
689
+ }, import("zod/v4/core").$strip>>;
690
+ }, import("zod/v4/core").$strip> | undefined, string, string>;
691
+ refreshServer: FragnoClientMutatorData<NonGetHTTPMethod, "/servers/:slug/refresh", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("zod").ZodObject<{
692
+ ok: import("zod").ZodBoolean;
693
+ tools: import("zod").ZodArray<import("zod").ZodObject<{
694
+ name: import("zod").ZodString;
695
+ title: import("zod").ZodOptional<import("zod").ZodString>;
696
+ description: import("zod").ZodOptional<import("zod").ZodString>;
697
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
698
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
699
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
700
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
701
+ }, import("zod/v4/core").$loose>>;
702
+ stage: import("zod").ZodNullable<import("zod").ZodEnum<{
703
+ auth: "auth";
704
+ list_tools: "list_tools";
705
+ }>>;
706
+ checkedAt: import("zod").ZodString;
707
+ server: import("zod").ZodObject<{
708
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
709
+ endpointUrl: import("zod").ZodString;
710
+ authMode: import("zod").ZodString;
711
+ slug: import("zod").ZodString;
712
+ }, import("zod/v4/core").$strip>;
713
+ auth: import("zod").ZodObject<{
714
+ authenticated: import("zod").ZodBoolean;
715
+ mode: import("zod").ZodString;
716
+ tokenPresent: import("zod").ZodBoolean;
717
+ expiresAt: import("zod").ZodNullable<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
718
+ expired: import("zod").ZodNullable<import("zod").ZodBoolean>;
719
+ scopes: import("zod").ZodObject<{
720
+ requested: import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodString>>;
721
+ granted: import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodString>>;
722
+ missing: import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodString>>;
723
+ raw: import("zod").ZodNullable<import("zod").ZodString>;
724
+ }, import("zod/v4/core").$strip>;
725
+ }, import("zod/v4/core").$strip>;
726
+ live: import("zod").ZodObject<{
727
+ reachable: import("zod").ZodBoolean;
728
+ listToolsOk: import("zod").ZodBoolean;
729
+ toolCount: import("zod").ZodNullable<import("zod").ZodNumber>;
730
+ protocolVersion: import("zod").ZodNullable<import("zod").ZodString>;
731
+ serverInfo: import("zod").ZodNullable<import("zod").ZodUnknown>;
732
+ capabilities: import("zod").ZodNullable<import("zod").ZodUnknown>;
733
+ }, import("zod/v4/core").$strip>;
734
+ cache: import("zod").ZodObject<{
735
+ presentBeforeCheck: import("zod").ZodBoolean;
736
+ previousToolCount: import("zod").ZodNullable<import("zod").ZodNumber>;
737
+ updatedToolCount: import("zod").ZodNullable<import("zod").ZodNumber>;
738
+ }, import("zod/v4/core").$strip>;
739
+ error: import("zod").ZodNullable<import("zod").ZodObject<{
740
+ code: import("zod").ZodString;
741
+ message: import("zod").ZodString;
742
+ }, import("zod/v4/core").$strip>>;
743
+ }, import("zod/v4/core").$strip> | undefined, "SERVER_NOT_FOUND", string>;
744
+ callTool: FragnoClientMutatorData<NonGetHTTPMethod, "/servers/:slug/tools/execute", import("zod").ZodObject<{
745
+ name: import("zod").ZodString;
746
+ arguments: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
747
+ timeoutMs: import("zod").ZodOptional<import("zod").ZodNumber>;
748
+ }, import("zod/v4/core").$strip> | undefined, import("zod").ZodObject<{
749
+ isError: import("zod").ZodBoolean;
750
+ content: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
751
+ structuredContent: import("zod").ZodUnknown;
752
+ }, import("zod/v4/core").$strip> | undefined, "SERVER_NOT_FOUND" | "MCP_ERROR", string>;
753
+ setToken: FragnoClientMutatorData<NonGetHTTPMethod, "/servers/:slug/auth/token", import("zod").ZodObject<{
754
+ token: import("zod").ZodString;
755
+ }, import("zod/v4/core").$strip> | undefined, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
756
+ mode: import("zod").ZodLiteral<"none">;
757
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
758
+ mode: import("zod").ZodLiteral<"bearer">;
759
+ credentials: import("zod").ZodEnum<{
760
+ present: "present";
761
+ missing: "missing";
762
+ }>;
763
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
764
+ mode: import("zod").ZodLiteral<"client_credentials">;
765
+ credentials: import("zod").ZodEnum<{
766
+ present: "present";
767
+ missing: "missing";
768
+ }>;
769
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
770
+ mode: import("zod").ZodLiteral<"oauth">;
771
+ state: import("zod").ZodEnum<{
772
+ "consent-required": "consent-required";
773
+ "consent-pending": "consent-pending";
774
+ authorized: "authorized";
775
+ expired: "expired";
776
+ }>;
777
+ }, import("zod/v4/core").$strip>], "mode"> | undefined, "SERVER_NOT_FOUND", string>;
778
+ startOAuth: FragnoClientMutatorData<NonGetHTTPMethod, "/servers/:slug/auth/start", import("zod").ZodObject<{
779
+ scope: import("zod").ZodOptional<import("zod").ZodString>;
780
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
781
+ clientSecret: import("zod").ZodOptional<import("zod").ZodString>;
782
+ discardTokens: import("zod").ZodDefault<import("zod").ZodBoolean>;
783
+ }, import("zod/v4/core").$strip> | undefined, import("zod").ZodObject<{
784
+ authorizationUrl: import("zod").ZodString;
785
+ state: import("zod").ZodString;
786
+ }, import("zod/v4/core").$strip> | undefined, "SERVER_NOT_FOUND" | "INVALID_OAUTH_REDIRECT_URI" | "OAUTH_REDIRECT_URI_NOT_ALLOWED" | "OAUTH_ERROR", string>;
787
+ deleteAuth: FragnoClientMutatorData<NonGetHTTPMethod, "/servers/:slug/auth", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
788
+ mode: import("zod").ZodLiteral<"none">;
789
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
790
+ mode: import("zod").ZodLiteral<"bearer">;
791
+ credentials: import("zod").ZodEnum<{
792
+ present: "present";
793
+ missing: "missing";
794
+ }>;
795
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
796
+ mode: import("zod").ZodLiteral<"client_credentials">;
797
+ credentials: import("zod").ZodEnum<{
798
+ present: "present";
799
+ missing: "missing";
800
+ }>;
801
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
802
+ mode: import("zod").ZodLiteral<"oauth">;
803
+ state: import("zod").ZodEnum<{
804
+ "consent-required": "consent-required";
805
+ "consent-pending": "consent-pending";
806
+ authorized: "authorized";
807
+ expired: "expired";
808
+ }>;
809
+ }, import("zod/v4/core").$strip>], "mode"> | undefined, "SERVER_NOT_FOUND", string>;
810
+ };
811
+ //#endregion
812
+ export {};
813
+ //# sourceMappingURL=index.d.ts.map